地理编码输出是相同lat/lng的3倍
Geocoding output 3 times the same lat/lng
我使用基于服务器的地理编码对一些硬编码地址进行了地理编码:
for (var x = 0; x < addresses.length; x++) {
$.getJSON('http://maps.googleapis.com/maps/api/geocode/json?address='+addresses[x]+'&sensor=false', null, function (data) {
var lat = data.results[0].geometry.location.lat;
var lng = data.results[0].geometry.location.lng;
latlng = {lat: lat, lng: lng};
markerLocations.push(latlng);
//}
for (var b=0; b < markerLocations.length; b++)
{
markers.push(new google.maps.Marker({
position: new google.maps.LatLng(markerLocations[b].lat, markerLocations[b].lng),
map: map,
}))
};
});
}
硬编码地址:
var addresses = [
['Hamburg'],
['The Grand Bhagwati,ahmedabad'],
['Global Pagoda Road, Gorai Island, Borivali West, Mumbai, Maharashtra'],
['583 Orchard Rd, B1-25, Singapore'],
['Norway, Oslo']
];
我现在的问题是,由于插入了2个for循环,所以我得到了数组的乘积。我想在最后从lat得到一个输出,lng只有1次,而不是相同的lat/lng坐标3或4次。
问题是,在每个循环中,所有标记都会从markerLocations
数组中再次添加。你可以使用一个简单的函数来解决这个问题,如下所示-
for (var x = 0; x < addresses.length; x++) {
$.getJSON('http://maps.googleapis.com/maps/api/geocode/json?address='+addresses[x]+'&sensor=false', null, function (data) {
var lat = data.results[0].geometry.location.lat;
var lng = data.results[0].geometry.location.lng;
latlng = {lat: lat, lng: lng};
addMarker(latlng);
});
}
function addMarker(latlng) {
var marker = new google.maps.Marker({ position: new google.maps.LatLng(latlng.lat, latlng.lng),
map: map }));
markers.push(marker);
}
希望这能有所帮助!
相关文章:
- 使用getElementById时不显示lat和lng
- 从GeoJson文件中获取单独的Lat和Lng值
- 通过lat和lng值设置标记
- 本地存储上的传单标记,如何获取标记 lat lng 并从存储中排除
- 谷歌地图API - 在数组中使用Lat Lng坐标绘制折线飞行路径
- 循环对象数组,直到lat/lng不为零
- 从多边形(多边形)边界内的多边形中心生成n个随机点(Lat-Lng对)
- googlemaps移动标记与来自ajax的lat/lng成功返回数据
- 将lat/lng坐标转换为给定地图上的像素(使用JavaScript)
- 使用getCenter()创建GMap Lat/Lng对象时,v3.22中出现错误
- 如果我有一个lat/lng我假设它在(0,0)那么我如何计算另一个lat/lng对的x, y坐标
- 推Lat/Lng到多边形数组的麻烦-谷歌地图
- Google Maps V3 API——当动态创建标记时,我想获得基于lat/lng的县
- 如何在Angularjs中使用ngMap访问地图标记的当前位置(lat, lng) ?
- 如何将react-google-maps中的lat/lng添加到此.state.markers
- 标记GoogleMaps Lat/Lng交叉口
- 如何从谷歌地图API函数中获得javascript lat/lng变量
- Google Geocoder为几个不同的地址返回同一组lat/lng.Lat/Lng是城市或乡镇的坐标,而不是地址
- 地理编码输出是相同lat/lng的3倍
- 将lat/lng坐标转换为给定旋转地图上的像素