如何修改 Javascript 中数组的内容
How to modify content of an array in Javascript
我正在使用 Google 地图 API 在地图上创建一些区域。我将地理数据存储在数据库中,然后通过 Ajax 获取它。
问题是 API 想要数据作为对象,例如:
var myHome = { "lat" : "44.767778" , "long" : "-93.2775" };
所以我需要在数组中放入 {"lat" : 和 "long : ... };
我该怎么做?
这是我在你的帮助下所做的。我没有任何错误,但地图上没有显示任何内容。我使用了来自 API 的百慕大三角的例子,就像一个模型: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);
}
可能最简单的方法(没有看到您的任何示例代码)是将您通过 ajax 获得的值放入一个新变量中。假设您获得的对象称为 geoData。 geoData 应该有 2 个值 lat 和 long 或者你怎么称呼它们。
最简单的方法是:
var myHome = {
"lat": geoData.lat,
"long": geoData.long
}
就是这样,希望对您有所帮助。
也可以直接通过google映射创建LatLng
对象api:
var latlng = new google.maps.LatLng(44.767778, -93.2775);
那个 returns 您需要使用地图的对象。
我正在使用 Google 地图 API 在地图上创建一些区域。我将地理数据存储在数据库中,然后通过 Ajax 获取它。
问题是 API 想要数据作为对象,例如:
var myHome = { "lat" : "44.767778" , "long" : "-93.2775" };
所以我需要在数组中放入 {"lat" : 和 "long : ... };
我该怎么做?
这是我在你的帮助下所做的。我没有任何错误,但地图上没有显示任何内容。我使用了来自 API 的百慕大三角的例子,就像一个模型: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);
}
可能最简单的方法(没有看到您的任何示例代码)是将您通过 ajax 获得的值放入一个新变量中。假设您获得的对象称为 geoData。 geoData 应该有 2 个值 lat 和 long 或者你怎么称呼它们。
最简单的方法是:
var myHome = {
"lat": geoData.lat,
"long": geoData.long
}
就是这样,希望对您有所帮助。
也可以直接通过google映射创建LatLng
对象api:
var latlng = new google.maps.LatLng(44.767778, -93.2775);
那个 returns 您需要使用地图的对象。