Все должно быть хорошо, но это не так. Нет ошибок консоли, ничего. Результат моего объекта отображается правильно в консоли, и мой маркер настроен правильно, если я вручную ввожу координаты.
Однако если я передам данные в LatLng с моим объектом, результат будет нулевым.
Это в консоли возвращает «46.00,45.00»:
var data = jQuery.parseJSON(data);
console.log(data[0].coords);
и это устанавливает мой маркер для карт Google:
var latLng = new google.maps.LatLng(46.00,45.00);
var marker = new google.maps.Marker({
position: latLng,
map: map
});
НО! Если я напишу это так, ничего не произойдет:
var data = jQuery.parseJSON(data);
var latLng = new google.maps.LatLng((data[0].coords));
var marker = new google.maps.Marker({
position: latLng,
map: map
});
Вы просто передаете один аргумент data[0].coords
в виде строки, когда вам нужно передать 2 аргумента в виде чисел, как указано в документация:
LatLng(lat:number, lng:number, noWrap?:boolean)
Вам нужно будет разделить coords
переменная перед:
var coordinates = data[0].coords.split(",");
var latLng = new google.maps.LatLng(coordinates[0], coordinates[1]);
Вы проходите data.coords[0]
возражать полностью к новому google.maps.LatLng
Вы должны разделить lat и lon и передать его, как показано ниже.
var data = jQuery.parseJSON(data);
var latLng = new google.maps.LatLng(data[0].coords[0],data[0].coords[1]);
var marker = new google.maps.Marker({
position: latLng,
map: map
});