google.maps.LatLng ожидает два числа в качестве аргумента. В настоящее время вы передаете строку, которая приведет к ошибке. Поэтому вам нужно конвертировать ваши маркеры [i] .metavalue в два числа, например:
function setMarkers(map, markers) {
for (var i = 0; i < markers.length; i++) {
latlng = markers[i].meta_value.split(",")
lat = parseFloat(latlng[0])
lng= parseFloat(latlng[1])
var marker = new google.maps.Marker({
position: new google.maps.LatLng(lat, lng),
map: map
});
var contentString = "Some content";
google.maps.event.addListener(marker, "click", function () {
//infowindow.setContent(this.html);
//infowindow.open(map, this);
});
}
}
Если вы не хотите разговаривать, вы можете просто сохранить значения lat и lng в виде чисел в отдельных свойствах. Итак, ваш JSON будет выглядеть так:
var markers = [{
"ID":"883",
"post_title":"Tucker's Cafe",
"meta_key":"meta_geo",
"lat":41.1674377,
"lng": -73.2236554
}
и вы бы добавили маркер так:
var marker = new google.maps.Marker({
position: new google.maps.LatLng(markers[i].lat, markers[i].lng),
map: map
});