gpt4 book ai didi

javascript - 谷歌地图 API JS : trying to convert the address to Lat Long

转载 作者:行者123 更新时间:2023-11-30 18:33:10 26 4
gpt4 key购买 nike

JavaScript 谷歌地图 API V3

我正在尝试使用来自 Google Maps API v3 的 geocode 将地址转换为纬度/经度,但它不起作用。

其余代码工作正常。

我确定这是一个非常简单的问题!!

代码

        var map;
function initialize() {
var infoWindow = new google.maps.InfoWindow;
var myLatLng = new google.maps.LatLng(-23.000516, -43.413473);
var myOptions = {
zoom: 15,
center: myLatLng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};

map = new google.maps.Map(document.getElementById('mapa'), myOptions);

// Download do XML
downloadUrl("http://podium.pvidesign.com.br/mapa/casas.xml", function(data) {
var icone = 'http://podium.pvidesign.com.br/mapa/imagens/casa.png';
var imoveis = data.documentElement.getElementsByTagName("imovel");
for (var i = 0; i < imoveis.length; i++) {
//var latlng = new google.maps.LatLng(parseFloat(imoveis[i].getAttribute("lat")), parseFloat(imoveis[i].getAttribute("lng")));
var logradouro = imoveis[i].getAttribute("logradouro");
var endereco = imoveis[i].getAttribute("endereco");
var numero = imoveis[i].getAttribute("numero");
var bairro = imoveis[i].getAttribute("bairro");
var cidade = imoveis[i].getAttribute("cidade");
var imagem = imoveis[i].getAttribute("img");
var end_completo = logradouro + " " + endereco + ", " + numero + ", " + bairro + ", " + cidade;
var nome = imoveis[i].getAttribute("nome");
var desc = imoveis[i].getAttribute("desc");
var html = "<b>" + nome + "</b><br>" + "<img src='" + imagem + "'><br>" + desc + "<br>" + end_completo;

// Coletando Lat e Long atraves do endereço
var geocoder = new google.maps.Geocoder();
geocoder.geocode( {'address': end_completo}, function(results, status) {

var latLong = results[0].geometry.location;

}); // Fim Coletando

var houseMarker = new google.maps.Marker({
title:nome,
position:latLong,
map:map,
icon:icone
});
bindInfoWindow(houseMarker, map, infoWindow, html);
}
});

// Balão de informação
function bindInfoWindow(houseMarker, map, infoWindow, html) {
google.maps.event.addListener(houseMarker, 'mouseover', function() {
infoWindow.setContent(html);
infoWindow.open(map, houseMarker);
});
google.maps.event.addListener(houseMarker, 'mouseout', function() {
infoWindow.close();
});
};

};

最佳答案

从葡萄牙语翻译(随意猜测),您似乎正在尝试对包含以下内容的地址进行地理编码:街道、地址、号码、社区和城市。可能太多了,我会尝试只使用街道、号码、城市,看看是否有帮助。

此外,您的代码非常乐观,没有检查响应中的状态代码。您应该检查 Status Codesresponse 中,如果不是 google.maps.GeocoderStatus.OK 那么响应中不会有任何结果。

试试 Google Maps API v3 Geocoder Tool使用不同的示例输入(来自您的数据)来查看它的行为方式,您可能会发现有关如何格式化地址、数据本身等的问题。尝试使您的地址看起来像您用来运送包裹的地址。

另请注意,您的方法在加载 map 时最多只能对 10 个地址进行地理编码。如果您需要显示更多内容,您可能需要使用服务器端地理编码。看看 Geocoding Strategies文章并确保为您的用例使用正确的服务。

关于javascript - 谷歌地图 API JS : trying to convert the address to Lat Long,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9039196/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com