我使用Google Maps API在地图上创建了一些区域。我将地理数据存储在数据库中,然后通过Ajax获取它。
问题是API希望将数据作为对象,如:
var myHome = { "lat" : "44.767778" , "long" : "-93.2775" };
所以我需要在数组中放入{" lat" :和" long:...};
我怎么能这样做?
以下是我的帮助。我没有错误,但地图上没有任何内容。我使用API中的BermudaTriangle示例,如模型:https://developers.google.com/maps/documentation/javascript/examples/polygon-autoclose
$.get(
"getZones.php", //Get geodata from database
function(data) {
locZone = data;
var reg=new RegExp("[/]+", "g"); //Separate points of the zone
var tableau=locZone.split(reg);
for (var i=0; i<tableau.length; i++) {
points = new google.maps.LatLng(tableau[i]);
coords.push(points);//Put the coordinates in a tab
}
var zone = new google.maps.Polygon({
paths: coords, //Use the tab like in the example from API
strokeColor: '#FF0000',
strokeOpacity: 0.8,
strokeWeight: 3,
fillColor: '#FF0000',
fillOpacity: 0.35
});
zone.setMap(map);
}
);
没关系,我只是重写了循环:
for (var i=0; i<tableau.length; i++) {
var b=tableau[i].split(","); //Separate lat & lng
points=new google.maps.LatLng(parseFloat(b[0]), parseFloat(b[1])); //Convert data into float type
coords.push(points);
}
答案 0 :(得分:2)
可能最简单的方法(没有看到你的任何示例代码)是将你通过ajax获得的值放在一个新变量中。让我们说你得到的对象叫做geoData。 geoData应该有2个值lat和long,或者你调用它们。
最简单的方法是:
var myHome = {
"lat": geoData.lat,
"long": geoData.long
}
那就是它,希望这会有所帮助。
答案 1 :(得分:1)
您还可以直接通过google maps api创建LatLng
对象:
var latlng = new google.maps.LatLng(44.767778, -93.2775);
返回您需要使用地图的对象。