推Lat/Lng到多边形数组的麻烦-谷歌地图
Trouble pushing Lat/Lng to array for polygon - Google Maps
我正在尝试使用多边形来勾勒城市中的区域。我正在从kml文件中提取lat/lng。问题是,当我将新的google.maps.LatLng(lat,lng)推送到数组时,值会发生变化,看起来像这样:
[R { k=-90, B=37.74811199999999, toString=function(), more...}, R { k=-90, B=37.74840500000005, toString=function(), more...}, R { k=-90, B=37.74885900000004, toString=function(), more...}, R { k=-90, B=37.74871800000005, toString=function(), more...}, R { k=-90, B=37.74845099999993, toString=function(), more...}, R { k=-90, B=37.74811199999999, toString=function(), more...}, R { k=-90, B=37.74499100000003, toString=function(), more...}, R { k=-90, B=37.74434999999994, toString=function(), more...}, R { k=-90, B=37.74332800000002, toString=function(), more...}, R { k=-90, B=37.74282100000005, toString=function(), more...}, R { k=-90, B=37.741840000000025, toString=function(), more...}, R { k=-90, B=37.74077999999997, toString=function(), more...}, R { k=-90, B=37.73960099999999, toString=function(), more...}, R { k=-90, B=37.73775899999998, toString=function(), more...}, R { k=-90, B=37.73704900000007, toString=function(), more...}, R { k=-90, B=37.736580000000004, toString=function(), more...}, R { k=-90, B=37.73606900000004, toString=function(), more...}, R { k=-90, B=37.734909000000016, toString=function(), more...}, R { k=-90, B=37.73410000000001, toString=function(), more...}, R { k=-90, B=37.73358899999994, toString=function(), more...}, R { k=-90, B=37.73257100000001, toString=function(), more...}, R { k=-90, B=37.732230999999956, toString=function(), more...}, R { k=-90, B=37.732230999999956, toString=function(), more...}, R { k=-90, B=37.732058999999936, toString=function(), more...}, R { k=-90, B=37.73168899999996, toString=function(), more...}, R { k=-90, B=37.73168899999996, toString=function(), more...}, R { k=-90, B=37.73247100000003, toString=function(), more...}, R { k=-90, B=37.73239899999999, toString=function(), more...}, R { k=-90, B=37.732058999999936, toString=function(), more...}, R { k=-90, B=37.731547999999975, toString=function(), more...}, R { k=-90, B=37.731788999999935, toString=function(), more...}, R { k=-90, B=37.73481000000004, toString=function(), more...}, R { k=-90, B=37.73623999999995, toString=function(), more...}, R { k=-90, B=37.737869000000046, toString=function(), more...}, R { k=-90, B=37.73915099999999, toString=function(), more...}, R { k=-90, B=37.74261899999999, toString=function(), more...}, R { k=-90, B=37.74811199999999, toString=function(), more...}]
查看下面的代码块。
var districts = [];
var mapped_districts = [];
var map = {};
function drawBorders(){
$.ajax({
type: "GET",
url: "districts.kml",
dataType: "xml",
success: districtsToArrayAndMap
});
function districtsToArrayAndMap(xml) {
// $(xml).find("Placemark").each(function () {
// console.log($(this))
//console.log($(this).find("name").text())
//console.log($(this).find("coordinates").text())
function map_districts(){
for (var i=0; i<districts.length; i++){
var coords = districts[i]["coords"];
//console.log(coords);
var coord_string = coords.split(" ");
var points = [];
for (var c=0; c<coord_string.length-1; c++){
var c1 = coord_string[c].split(",");
var lat1 = Number(c1[0]);
var lng1 = Number(c1[1]);
//console.log(typeof lat + lat);
//var point = "new google.maps.LatLng("+lat+","+lng+")";
points.push(new google.maps.LatLng(lat1, lng1));
}
districts[i]["points"] = points;
//console.log(districts[i]["name"] + districts[i]["points"])
var pointsArray = districts[i]["points"];
console.log(pointsArray);
mapped_districts[i] = new google.maps.Polygon({
paths: pointsArray,
strokeColor: '#FF0000',
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: '#FF0000',
fillOpacity: 0.35
});
mapped_districts[i].setMap(map);
}
};
$(xml).find("Placemark").each(function(index, value){
//get coordinates and place name
name = $(this).find("name").text();
coords = $(this).find("coordinates").text();
districts.push({
"name": name,
"coords": coords
});
});
// });
//console.log(districts);
map_districts();
};
};
这是不正确的:
for (var c=0; c<coord_string.length-1; c++){
var c1 = coord_string[c].split(",");
var lat1 = Number(c1[0]);
var lng1 = Number(c1[1]);
//console.log(typeof lat + lat);
//var point = "new google.maps.LatLng("+lat+","+lng+")";
points.push(new google.maps.LatLng(lat1, lng1));
KML坐标按经度、纬度顺序排列。应该是:
for (var c=0; c<coord_string.length-1; c++){
var c1 = coord_string[c].split(",");
var lat1 = Number(c1[1]);
var lng1 = Number(c1[0]);
//console.log(typeof lat + lat);
//var point = "new google.maps.LatLng("+lat+","+lng+")";
points.push(new google.maps.LatLng(lat1, lng1));
相关文章:
- 谷歌地图固定位置覆盖
- 不显示带有本地json文件数据的谷歌地图脚本
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 谷歌地图标记不会显示
- 无法在JS中显示谷歌地图
- 科尔多瓦页面类应用程序中的多个谷歌地图
- 需要帮助谷歌地图方向面板在FancyBox中显示
- 在谷歌地图上获取事件的x,y坐标
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 模拟谷歌地图中的点击
- 如何知道哪个标记被谷歌地图点击了
- 谷歌地图JS API+JSON-多个标记没有显示
- 缓存谷歌地图数据
- 谷歌地图劫持了iphone's滚动(触摸事件)-如何恢复
- 在谷歌地图上绘制位置数据库
- 标记的实时更新,无需加载页面谷歌地图API V3
- 可以't计算自定义谷歌地图的js
- 推Lat/Lng到多边形数组的麻烦-谷歌地图
- 麻烦使用谷歌地图api在我的ionic应用程序
- 麻烦与谷歌地图Javascript API