Клуб API Карт

Как правильно сохранять данные в свою базу mysql "для Intersects" ?

nicholas.123
23 января 2011, 18:20

Как правильно сохранять данные в свою базу mysql ?

Сейчас делаю так:

забираю точки и полигоны с помощью getGeoPoint(); и  getPoints();

добавляю к ним слова point, polygon и скобки

заменяю точки на пробелы и сохраняю

mysql_query("REPLACE... GeomFromText( '$geo_value' ))

Загружаю

 mysql_query("SELECT... AsText(location)

и выполняю обратные преобразования.

Вопрос: есть ли более прямой способ сохранять и загружать данные в свою базу, в формате совместимым с "Intersects" ?

Спасибо.

2 комментария
Подписаться на комментарии к посту
Для начала расскажите как Вы эти точки из браузера до mysql доносите
new_location = some_polygon.getPoints();
...
function rest_upd_polygon(rest_name, new_location){
var new_location_mysql_prep = "polygon((";
for (i = 0; i < new_location.length; i++){
var temp = ""+ new_location[i];
temp =  temp.replace(",", " ");
new_location_mysql_prep += temp+",";
}                                                                                                                                                             
var temp = ""+ new_location[0];
temp =  temp.replace(",", " ");
new_location_mysql_prep += temp+"))";
var script = document.createElement('script');
script.src = 'upd_polygon.php'  
+'?some_name='+ rest_name
+'&new_location='+ new_location_mysql_prep;
document.body.appendChild(script);
}

В доке по mysql
http://dev.mysql.com/doc/refman/5.0/en/supported-spatial-data-formats.html 
говорится о поддержке форматов WKT, WKB.

В доках Яндекса
либо о бесполезном в данной ситуации формате  YMaps.TileCoordinates ;
либо о более интересном base64 fromEncodedPoints
http://api.yandex.ru/maps/jsapi/doc/ref/reference/polygon.xml
последний - только для полигонов.


Но какой то нормальной функции, для получения точек и полигонов в формате WKB или совместимом с mysql GeomFromText , я пока не нашел...

Если они есть - было бы очень интересно узнать.