Как отсортировать / сгруппировать потенциальных клиентов Salesforce по географии? - PullRequest
2 голосов
/ 24 января 2009

Если бы у меня были данные по широте / длине для всех наших клиентов в Salesforce, есть ли способ написать запрос, чтобы сгруппировать их или сказать список всех клиентов в пределах 10 миль от Сан-Франциско, Калифорния?

[РЕДАКТИРОВАТЬ: Уточнение] У меня тысячи лидов с полным адресом и длинным латом. Я хочу составить запрос по этим ссылкам, который даст мне все ссылки рядом с Сан-Франциско, Калифорния. Это означает выполнение работы типа ГИС в рамках Salesforce.

Конечно, я мог бы отфильтровать по городу, почтовым индексам или коду города, но это создает некоторые проблемы при попытке свести всю область метро.

Ответы [ 4 ]

2 голосов
/ 24 января 2009

Да. Вам нужно поменять местами GeoCode с помощью инструмента / сервиса. В прошлом я пользовался сервисом Maporamas , но он был довольно дорогим, и это было до появления карт Google и виртуальной земли, поэтому я уверен, что сейчас есть что-то более дешевое (бесплатное) .... нашли это и это

EDIT:

ОК. Из того, что я понимаю, вы пытаетесь вычислить расстояние между двумя точками широты и долготы. Я хотел бы начать с дисконтирования тех, кто находится за пределами вашей сферы (скажем, 10 миль). Итак, из вашей центральной точки вы захотите получить координаты 10 миль, восток, запад, юг и север. Для этого вам нужно использовать формула большого круга формула.

С этого момента у вас есть данные отдела продаж, если вы хотите разбить эти данные дальше, вам нужно упорядочить точки по расстоянию от центральной точки. Для этого вам нужно воспользоваться формулой Haversine

Я не уверен, что вы предпочитаете язык, поэтому я просто включил несколько примеров из SQL (в основном) и C #

Формула Haversine в C # и в SQL

Определить расстояние между почтовыми индексами с помощью C #

Большой круг SQL

Большой круг 2

0 голосов
/ 04 ноября 2016

Это сообщение действительно старое, но оно показывается вверху результатов Google, поэтому я решил, что в любом случае опубликую некоторую информацию.

2 хороших картографических инструмента: batchgeo.com и geocod.io. Geocod.io может даже указать широту и длину координат по адресу.

Если вам нужен только однократный расчет, вы можете использовать Excel. Экспортируйте все ваши лиды с лат и лонг. Затем перейдите в Карты Google и получите широту и длину в десятичных градусах для центра города, где вы хотите измерять.

Затем используйте эту формулу в Excel, чтобы вычислить расстояние между координатами в милях. Lat1dd и Long1dd - координаты для одной точки, а lat2dd и long2dd - координаты для другой точки.

=3963*ACOS(COS(RADIANS(90-lat1dd))*COS(RADIANS(90-lat2dd))+SIN(RADIANS(90-lat1dd))*SIN(RADIANS(90-lat2dd))*COS(RADIANS(long1dd-long2dd)))

После того, как вы запустите его, просто отсортируйте результаты от наименьшего к наибольшему, чтобы получить самые близкие результаты.

Я еще не сделал эту следующую часть, но концептуально это должно сработать. У нас есть поле, в котором перечислены основные рынки, на которых находится каждая учетная запись. Например, Chicago IL. Я собираюсь создать поле триггера или формулы, которое по сути говорит IF (Market = "Chicago IL"), затем используйте X и Y для широты и долготы. Они будут жестко закодированы как центр города для этого конкретного рынка. Затем запрос будет запускать лат и лонг каждой отдельной учетной записи по отношению к учетной записи из центра города, чтобы вычислить расстояние.

Если вы хотите разбить рынок на разные зоны, вы можете настроить формулу так, чтобы она использовала <и> в полях lat и long. Все, что меньше X, но больше, чем Y, попадает в зону A и т. Д.

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 17 июня 2009

Это отличные технические решения, которые могут дать очень точные ответы, но следует учитывать две вещи:

  • геопространственная близость не соответствует аккуратно ответственности

Расчет владения лучше всего проводить с помощью поиска по почтовому индексу или других правил, которые не допускают пропусков или совпадений. В противном случае у вас будет два (или более) продавца, сражающихся за лиды, которые близки к ним обоим, и игнорируете те, которые находятся далеко от них обоих.

Итак, если вы используете гео-расчеты, подобные приведенным выше, для присвоения прав собственности, просто признайте, что система утечет, и создайте бизнес-правила для этого. Но простой почтовый поиск для определения территорий (как это делает собственная функция Salesforce управление территориями ) может быть лучше.

Я бы предположил, что проблема, которую мы пытаемся решить геопространственно, заключается не в том, кто владеет, кто ведет. Скорее, учитывая все ваши отведения, которые находятся рядом?

  • карты часто предлагают больше данных на пиксель, чем столбчатые отчеты

Опять же, геопространственные данные в отчете могут быть не лучшим ответом. Поводок в 50 км, но по главной дороге, более интересен, чем поводок в 50 км по другую сторону горы или озера. Или лидерство, близкое к другим, интереснее, чем само по себе.

Отчет не может показать это, но карта может.

В Salesforce есть несколько замечательных примеров интеграции Google Maps. Вместо колоночного отчета под названием «Мои ближайшие потенциальные клиенты», почему бы не страница Visualforce с картой Google внутри? Вы даете пользователю гораздо больше информации, чем мог бы сделать столбчатый отчет. Им это может понравиться больше, и это легче реализовать, чем пытаться вычислить некоторые из приведенных выше уравнений.

Просто еще одна перспектива, которая может (или не может) соответствовать рассматриваемой проблеме.

0 голосов
/ 06 апреля 2009

Используйте GeoHash.org (либо в качестве веб-службы, либо реализуйте алгоритм). Он хэширует ваши координаты по длине лат в форму, которая похожа на близлежащие места. Например, A может иметь хеш, например, «akusDf3af», а B может иметь хеш, например «akusDf3b2», если они находятся рядом. Затем выполните запрос SOQL, который ищет места, начинающиеся с тех же n символов, что и известное местоположение. Ваш n определит радиус поиска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...