Помогите с Яндекс.Картами. Как добавлять координаты в БД?

12
V7
На сайте с 09.02.2008
Offline
113
3295

Решили к новостям приделать адрес где происходило событие, если по одном адресу происходило несколько событий, то выводить кластером, при клике на который открывается как http://webmap-blog.ru/yandex-maps/klasterizaciya-v-api-yandeks-kart-2-x.

сделали поле адрес, при вводе адреса автоматом ставится метка на карту яндекса. Но вот как записать данные в поле coords в БД? к сожалению на приведенном сайте не указано как выглядит код файла для добавления

siv1987
На сайте с 02.04.2009
Offline
427
#1
Vlad7090:
сделали поле адрес, при вводе адреса автоматом ставится метка на карту яндекса.

А в чем проблема при добавления маркера отправить ajax запрос с координатами на сервер?

V7
На сайте с 09.02.2008
Offline
113
#2
siv1987:
А в чем проблема при добавления маркера отправить ajax запрос с координатами на сервер?

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

siv1987
На сайте с 02.04.2009
Offline
427
#3

http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/Balloon.xml#getPosition

дальше отправляете координаты на свой скрипт.

V7
На сайте с 09.02.2008
Offline
113
#4

вот сделал такой скрипт

<script src="http://api-maps.yandex.ru/2.0/?load=package.standard&lang=ru-RU" type="text/javascript"></script>
<script type="text/javascript">
var myMap, myPlacemark, coords;
ymaps.ready(init);
function init () {
myMap = new ymaps.Map('YMapsID', {center: [55.7465, 37.6274],zoom: 10,behaviors: ['default', 'scrollZoom']});
myMap.controls.add('zoomControl').add('typeSelector');
coords = [56.326944, 44.0075];myPlacemark = new ymaps.Placemark(coords,{iconContent: "Новость"}, {preset: "twirl#nightStretchyIcon", draggable: true});
myMap.geoObjects.add(myPlacemark);myPlacemark.events.add("dragend", function (e) {
coords = this.geometry.getCoordinates();
savecoordinats();
}, myPlacemark);

myMap.events.add('click', function (e) {
coords = e.get('coordPosition');
savecoordinats();
});
}
function do_search() {
var town = $("#city :selected").text();
var country = $("#country :selected").text();
var poisk = country + ", " + town;
ymaps.geocode(poisk, { results: 1 }).then(function (res) {
var firstGeoObject = res.geoObjects.get(0);
myMap.setCenter(firstGeoObject.geometry.getCoordinates(), 10);
});
}

function do_search_street() {
var town = $("#city :selected").text();
var country = $("#country :selected").text();
var steet = $("#street").val();
var poisk = country + ", " + town + ", " + steet;
ymaps.geocode(poisk, { results: 1 }).then(function (res) {
var firstGeoObject = res.geoObjects.get(0);
myMap.setCenter(firstGeoObject.geometry.getCoordinates(), 14);
coords = firstGeoObject.geometry.getCoordinates();
savecoordinats();
});
}


function savecoordinats (){
var new_coords = [coords[0].toFixed(4), coords[1].toFixed(4)];
myPlacemark.getOverlay().getData().geometry.setCoordinates(new_coords);
document.getElementById("latlongmet").value = coords[0].toFixed(4);
document.getElementById("mapzoom").value = coords[1].toFixed(4);
}

</script>

ввожу в поле <input type='text' onBlur='do_search_street();' id='street' name='adress' value='".$adress."' class='textbox' style='width: 250px' />

выводит на карте балун в положенном месте. теперь как то надо получить от этого балуна координаты в поле

<input type='text' id='coords' name='coords' value='".$coords."' class='textbox' style='width: 250px' />

siv1987
На сайте с 02.04.2009
Offline
427
#5

Ну так вот же coords = firstGeoObject.geometry.getCoordinates();

или var new_coords = [coords[0].toFixed(4), coords[1].toFixed(4)];

хз какая у вас там логика.

V7
На сайте с 09.02.2008
Offline
113
#6

да. вот только тоже разобрался полностью во всем, теперь пишет что и куда надо:)

V7
На сайте с 09.02.2008
Offline
113
#7

один вопрос остался. JSON ни в какую не хочет выводить данные без библиотеки jquery 1.3.2, хотя уже актуальная 1.9

рабочий синтаксис с квери 1.3.2

<script src="http://api-maps.yandex.ru/2.0/?load=package.full&lang=ru-RU" type="text/javascript"></script>
<script type="text/javascript" src="http://yandex.st/jquery/1.3.2/jquery.min.js"></script>

<script type="text/javascript">

ymaps.ready(init);

function init () {

var myMap = new ymaps.Map("map", {center: [55.302988,47.415765],zoom: 11, checkZoomRange: true});
myMap.controls.add("zoomControl")
.add("typeSelector")
.add("mapTools");

myGeoObjects = [];

$.getJSON("markers.php", function(json){
if (json.status == 'OK') {
for (i = 0; i < json.markers.length; i++) {
myPlacemark = new ymaps.Placemark(

// Координаты
[json.markers.lat, json.markers.lon],

// данные
{

balloonContentHeader: '<div style="color:#659cc9;">'+json.markers.cname+'</div>',
balloonContentFooter: '<strong>Адрес:</strong> '+json.markers.address+'</span>',
});
myGeoObjects.push(myPlacemark);
}
clusterer = new ymaps.Clusterer();
clusterer.options.set({
gridSize: 100,
minClusterSize:2,
synchAdd:true
})
clusterer.add(myGeoObjects);
myMap.geoObjects.add(clusterer);
}
else
{
alert('Произошла ошибка!');
}
})

}
</script>



<div id="map" style="height: 400px;"></div>

перестал работать, не выводит метки:(

siv1987
На сайте с 02.04.2009
Offline
427
#8

И в консоли ошибок ничего?

V7
На сайте с 09.02.2008
Offline
113
#9
siv1987:
И в консоли ошибок ничего?

выдает 200 OK

130ms

---------- Добавлено 23.04.2013 в 23:24 ----------

еще такое выдал: SyntaxError: JSON.parse: expected property name or '}'

V7
На сайте с 09.02.2008
Offline
113
#10

но как узнать строку некорректную понять не могу(

12

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