Нужно построить карту
Есть база MySQL, а точнее таблица cities. В таблице 5732 строки.
Строка - это населенный пункт (на самом деле населенных пунктов 5623, так как некоторые строки пустые).
Есть столбцы:
- id (уникальный номер строки, то есть населенного пункта)
- coords (где хранятся координаты населенного пункта)
- coords-y (координаты долготы)
- coords-x (координаты широты)
Скриншот:
http://img855.imageshack.us/img855/75/77828546.png
Есть также такие столбцы:
- id-road-n
- coords-road-n
- type-road-n
- name-road-n
- distance-road-n
n - это число (от 1 до 14), как можно видеть на скриншоте ниже (все 14 конечно не поместились). То есть таких блоков (id, coords, type, name, distance) всего 14.
Обращаем внимание только на столбцы id, city, region, country, id-road-n и coords-road-n. Остальные вам не нужны.
Скриншот:
http://img148.imageshack.us/img148/2776/36801765.p...
----------------------------------------------------
Логика:
Есть например город Киев (это первая строка, как видим из первого скриншота, id=1). В этой первой строке столбец id-road-1 равен 2 (см второй скриншот). Это значит, что с Киева есть прямой (то есть между ними нет населенных пунктов в базе) участок дороги до населенного пункта с id который равен 2 (на первом скриншоте это Борисполь). Далее в первой строке (это Киев) id-road-2 равен 122 (122 - это id населенного пункта Калиновка Киевской области). То есть между Киевом и Калиновкой есть прямой (между ними нет других населенных пунктов в базе) участок дороги. И так далее,
Скриншот:
http://img685.imageshack.us/img685/2026/88432340.p...
В Киеве (первая строка) таких участков 9. id-road-10 равен null, то есть больше прямых участков от Киева в базе нет.
Скриншот:
http://img148.imageshack.us/img148/471/28558838.pn...
-----------------------------------------------------
Задача:
Нужно внести координаты участков дорог, где их нет. То есть нужно заполнить столбцы coords-road-n, где id-road-n не равен null.
Если существует id-road-n (целое число, номер id, до которого есть участок), но coords-road-n равен null, то вместо null нужно внести координаты дороги (координаты ломанной по большому счету).
Например:
Скриншот
http://img5.imageshack.us/img5/4387/21600667.png
Выделенная оранжевым цветом строка, это населенный пункт Костомукша Республика Карелия. Столбец id у нее равен 5492. Как видим на скриншоте coords-road-2 равен 5493, coords-road-2 равен null. Вместо null нужно внести координаты дороги между населенным пунктом Костомукша и населенным пунктом, у которого id равен 5493.
Нужно менять координаты населенных пунктов (столбцы coords, coords-y и coords-x), где это необходимо. То есть координаты двух населенных пунктов должны быть концами участка дороги, координаты которой добавляется в базу.
-----------------------------------------------------
География базы:
Вся Европа, все страны СНГ, Турция. Уже сделаны (то есть вам делать не нужно - Украина, Молдова, Беларусь, часть Литвы).
-----------------------------------------------------
Приблизительный объем работ:
Всего в базе 5623 населенных пункта (строк больше).
Из них обработано, если считать по первому участку, 1134 населенных пункта. То есть разницу нужно сделать.
http://img687.imageshack.us/img687/8987/56816222.p...
Значение среднего количества участков от одного населенного пункта будет между числами 2 и 3.
-----------------------------------------------------
Варианты, где можно взять координаты участков дорог:
1.
Самый трудоемкий - ручной. Есть специальный сервис от Яндекса
http://api.yandex.ru/maps/jsapi/examples/mappolyli...
Скриншот:
http://img580.imageshack.us/img580/585/67637682.pn...
Внимание: масштаб - ползунок должен быть максимум на 2 деления выше масштаба "Улица". Не выше. Понятно, что чем выше масштаб, тем быстрее можно выполнить работу, но будет более низкое качество координат дорог.
2.
Ваши предложения