Създайте упътвания върху карта въз основа на персонализирани данни

Така че това, което се опитвам да направя, е следното:

  1. Имате карта (като Google Maps или questMaps). Изобщо няма значение кой API трябва да използвам.
  2. На тази карта има наслагване върху улиците. Така че (например) улицата има лоша светкавица през нощта, тя ще бъде оцветена в червено. Ако има добра светкавица, ще има зелено наслагване.
  3. Въз основа на наслагването картата създава персонализиран маршрут (например потребителят иска да ходи само по зелените/добре осветени улици).

Нямам представа как да постигна това (особено стъпка 3).


person anton k    schedule 27.06.2012    source източник


Отговори (2)


Първо, ще трябва да решите какви данни са ви необходими. Как категоризирате определени улици като осветени или неосветени? Ами ако някои части от улицата са добре осветени, а други нямат осветление? Трябва ли да знаете местоположението на всяко улично осветление във вашия район? Ами ако светлините изгорят?

След като разберете от какви данни се нуждаете, трябва да изградите своя набор от данни. Ще бъда МНОГО изненадан, ако тези данни вече съществуват, така че вероятно ще трябва да ги съберете сами. Или обиколете града и си водете бележки, или групирайте проекта, или измислете някакъв друг начин.

След като съберете данните си, научете API за чертане на какъвто и да е инструмент за картографиране, който искате да използвате. Всички те трябва да имат функции в своя API за рисуване на цветни линии (за улици) или точки (за улични лампи) върху съществуваща карта.

И накрая, научете навигационния API на инструмента за картографиране, който сте избрали. Прав си, това е трудна стъпка. Знам, че Google Maps ви позволява да посочите определени точки, когато изисквате указания; може би вашето приложение може да изчисли добре осветени точки и да ги подаде към услугата за упътвания на Google Maps, за да повлияе на маршрута, който генерира.

Късмет!

person Dan O    schedule 27.06.2012
comment
Благодаря ти много. Идеята за точки е пробив за мен. - person anton k; 27.06.2012
comment
радвам се, че мога да помогна. Ако това е било полезно за вас, моля, помислете дали да гласувате за и/или да го приемете като добър отговор. stackoverflow.com/faq#howtoask - person Dan O; 27.06.2012

За персонализирано маршрутизиране трябва да прочетете "Теория на графиките". Това игнорира географията на картата на улиците и я разглежда като набор от кръстовища (възли или върхове в жаргона на теорията на графите), свързани с ръбове. Можете да присвоите тегла на ръбовете - това могат да бъдат дължини, времена за пътуване, единици и нули и т.н. Всичко. Те не могат да имат връзка с позицията на картата.

Така че за вашето приложение трябва да присвоите голямо тегло на неосветени улици и малко тегло на осветени улици, след което да използвате стандартен алгоритъм за минимално тегло, за да получите маршрут от един възел до друг.

person Spacedman    schedule 27.06.2012