К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

как лучше и проще сделать (привязка карты)?

Гость
0 - 27.06.2012 - 10:42
Дано:
Таблица эксель с адресами клиентов в столбик.
Как увязать эту табличку с картой города, чтоб в результате можно было видеть точки (адреса клиентов) на карте.
А затем можно было выделить область на карте и получить полный список точек (конкретный адрес) по заданной территории (в эксель формат).

Через что это можно реализовать? Есть ли каие то готовые решения? Может быть можно как то через Гугл или Дубль Гис.



Гость
1 - 27.06.2012 - 11:38
Адреса клиентов в у вас в формате широта/долгота или дом/улица?
...
On-line конвертор "адреса" в геокоординаты прорабатывался в компании Яндекс, одно в открытый доступ сервис выложен не был, поэтому умельцы парсят возврат их поисковика и читают координаты оттуда. 10 строк на Питоне :-))
...
Если задача - просто вычислить ближайших клиентов или попавших в полигон выделения, то это реализовано почти в любой ГИС, но если речь идет об оптимизации доставки - это уже посложнее. В этом случае нужна карта с маршрутизацией, и подсистема линейного программирования (т.н. транспортная задача), за изобретение и решение которой один наш хороший ученый когда-то отхватил ни много ни мало, а Нобелевскую премию. Задача очень интересная, и решается она за огромные деньги (в случае с Тандером) и то не полностью.
Гость
2 - 27.06.2012 - 11:52
1-economist > оптимизация доставки не нужна. Адреса в формате Улица, дом.
Я знаю к примеру, что на карте Дубль Гиса можно заводить "какие то свои точки". Но это делается не списком и выделить их потом не возможно.
Гость
3 - 27.06.2012 - 11:59
Можно и ручками, делал такую задачу еще задолго до "оСколково откатов чудных готовит инноваций дух..." для города, номеров домов которого не было ни на одной карте...
...
Взял полную базу российских адресов КЛАДР (есть в SQLite, искать на sql.ru), она отлично отображается в Excel/OpenOffice Calc через ODBC. Затем ее отфильтровал по городу, сделал (сгенерировал) формулами "псевдокоординаты" домов по улицам, для чего начало и конец каждой улицы нужно внести как XY/X1Y1 геокоординаты. Например есть улица Ленина, идущая с юга на север по меридиану 40,00'00" длиной 10 км (от широты 42,00'00" до 42,10'00" ) и содержащая 500 номеров домов. Распределив их равномерно - получим координаты номера 50 как 42,01'00"N и 40,00'00"E. После чего остается сущий пустяк - усадить за комп пару вечеров девочку, которая тупо мышкой по перетаскивала маркеры на нужные места. А затем экспортировала метки в текстовый файл.
...
Сейчас намного проще - почти все города есть с улицами/домами в Яндекс картах, а точки можно тыкать в SASPlanet или еще в тройке других софтин, и так можно за пять вечеров сделать адресную карту большого города, типа Р-н-Д.
Гость
4 - 27.06.2012 - 12:55
Если вы не программист, то способы все равно есть. Скажем так, введя в

maps.yandex.ru адрес, скажем строку поиска

Ростов-на-Дону, ул. Ленина, д. 1

мы получим в строке адреса редирект вида

http://maps.yandex.ru/?text=Ростов-н...799&z=17&l=map

Где 39.680863000000045 и 47.252011306832856 - это долота и широта объекта соответственно. Вытащить их в Excel и разбить там до Шиорта/Долгота нефиг делать, т.к. есть флаги для выгрызания (парсинга) вида sll= и sspn=.
Если у вас сто адресов - то проще это так и сделать ручками, копи-пастингом
...
Теперь вопрос - как перегнать тысячу адресов из Excel в обозреватель и вернуть копию из адресной строки обратно. Для этого есть много не-программистских технологий, а именно несколько бесплатных программ для записи часто выполняемых действий - AutoIt, AutoHotkey, xStart. В них вы записываете при открытом Excel и обозреватель действия: выделить ячейку, Ctrl+C, Alt+Tab, команда_активации_адр_строки, Ctrl+V,Enter, Ctrl+A, Ctrl+C, Alt+Tab, Стрелка вправо, Ctrl+V, Стрелка влево, и по новой Ctrl+С, Alt+Tab...

В результате работы скрипт обойдет все ячейки и заполнит слева от них координаты. Амандла!
Гость
5 - 27.06.2012 - 13:21
После того как ваши клиенты "узнают" свою широту и долготу, придется решить еще одну задачу - отображение их на карте. В простейшем случае это можно сделать прямо... в Excel, воспользовавшись точечной диаграммой, где ось Y - широта, X- долгота, а начало координат - левый нижний угол вашего города. Вообще-то долгота и широта - координаты на шаре, а XY-на плоскости, и чтобы перейти от одного на другое без грубых ошибок - нужно понять что таое проекциях.
...
Проекция - это способ переноса изображения с шара на плоскость. Их очень много (пара десятков).
...
К тому же недавно оказалось, что Земля вовсе не круглая, а картофелеобразная. Больше всего она похожа эллипс, но т.к. даже Россия занимает всего седьмую часть суши, а другие страны и подавно меньше - можно для каждой страны придумать такой "хитрый" эллипс, повернуть и наклонить его так, что он будет почти точно совпадать c картофелиной на их территории. А стран много... Поэтому моделей эллипсоида несколько десятков.
...
Google и Яндекс-карты использует проекцию великого голландца Меркатора, Mercator и самую "международную" систему координат с моделью Земли WGS84. Но ваша карта может быть другой. Ошибка с проекцией и СК может дать отклонения до десятков километров, поэтому нужно быть внимательным. Карту всегда можно "перепроектировать", т.е. натянуть на другой эллипсоид, а затем распрямить, и потом уже затолкнуть в Excel как фоновый рисунок, чтобы точки домов/клиентов точно совпали с фактическими.
Гость
6 - 27.06.2012 - 13:22
0-zolotaya seredina > Я для мобильных приложений с картами делаю так. Использую геокодер по всем адресам - http://ymapsapi.ya.ru/replies.xml?item_no=81
Далее загоняю точки на Яндекс.карты - http://api.yandex.ru/maps/doc/jsapi/...es/#placemarks
Ну и наконец кластеризация - http://api.yandex.ru/maps/features/?p=cluster
Гость
7 - 27.06.2012 - 18:17
>On-line конвертор "адреса" в геокоординаты прорабатывался в компании Яндекс, одно в открытый доступ сервис выложен не был, поэтому умельцы парсят возврат их поисковика и читают координаты оттуда. 10 строк на Питоне :-))

Как это? Геокодер у них открыт
Гость
8 - 28.06.2012 - 13:19
Я не программист. Понял, что для того чтоб из данных "Краснодар, ул. Грибоедова, 23" точку на карте - нужно получить ее координаты. КОторые в последствии будут загружены на карту.
Далать это по каждому адресу - не реально, т.к. адресов которые нужно обработать - тысячи.

В экселе есть адрес + телефон. То есть каждая точка на карте имеет определенный набор информации.
Для того чтоб в дальнейшем, выбрав на крате определенный квадрат, получить список точек = номеров телефонов
Гость
9 - 28.06.2012 - 15:12
8-zolotaya seredina > Почему это нереально? Из Excel импортируем в MySQL, прогоняем геокодер, добавляем эти точки на карту. Всё можно сделать за полчаса.
Гость
10 - 28.06.2012 - 18:36
9-Caballero > сколько будут стоить Ваши пол часа? Куда отправлять гонорар?
Гость
11 - 29.06.2012 - 16:18
Да не надо никакого гонорара. Пишите в личку, нужна инфа для помещения на карту и адрес сайта, куда ставить саму карту, чтоб ключ к API получить.
Гость
12 - 03.07.2012 - 08:10
11-Caballero > вчера отправил Вам письмо, жду ответа.
Гость
13 - 03.07.2012 - 14:12
Хм... почему-то ничего не получал... Написал вам
Гость
14 - 05.07.2012 - 10:18
В ответ на ваше письмо с контактами, отправил Вам запрашиваемый файл, Вы его получили?
Отправлял на адрес "Акимов точка про..."


К списку вопросов






Copyright ©, Все права защищены