【问题标题】:Google Geocoding - Cannot pull co-ordinates谷歌地理编码 - 无法拉坐标
【发布时间】:2013-05-06 04:45:40
【问题描述】:

我在这里得到了一些帮助,我尝试将两段代码合并在一起以获得以下结果:

用户点击地理编码按钮 向用户显示以下信息(键入的地址、城市、州、国家/地区、坐标)

这是我在一些帮助下拼凑的代码: http://jsfiddle.net/QA7Xr/25/

这是完整的书面代码:

 var myLatlng = new google.maps.LatLng(31.272410, 0.190898);


 // INITALIZATION
 function initialize() {
     var mapOptions = {
         zoom: 4,
         center: myLatlng,
         mapTypeId: google.maps.MapTypeId.ROADMAP
     }
     var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
 }

 // GEOCODE
 function codeAddress() {
     var address = document.getElementById("address").value;
     geocoder.geocode({
         'address': address
     }, function (results, status) {
         if (status == google.maps.GeocoderStatus.OK) {
             var address = "",
                 city = "",
                 state = "",
                 zip = "",
                 country = "";
             for (var i = 0; i < results[0].address_components.length; i++) {
                 var addr = results[0].address_components[i];
                 if (addr.types[0] == 'country') country = addr.long_name;
                 else if (addr.types[0] == 'street_address') // address 1
                 address = address + addr.long_name;
                 else if (addr.types[0] == 'establishment') address = address + addr.long_name;
                 else if (addr.types[0] == 'route') address = address + addr.long_name;
                 else if (addr.types[0] == 'postal_code') zip = addr.short_name;
                 else if (addr.types[0] == ['administrative_area_level_1']) state = addr.long_name;
                 else if (addr.types[0] == ['locality']) city = addr.long_name;
             }
             alert('City: ' + city + '\n' + 'State: ' + state + '\n' + 'Zip: ' + zip + '\n' + 'Country: ' + country);
         }
     }
     });
 } else {
     alert("Geocode was not successful for the following reason: " + status);
 };
 });
 } 

 initailize();
 document.getElementById("codeAddress").onclick = function () {
     codeAddress();
     return false;
 };

我是 javascript 编程的新手,但它的工作方式是,如果地理编码成功,它会抓取变量并将它们转储到对话框中,但它只是没有这样做。它是在一个简单的括号错误上不足还是写了一些更错误的东西?

【问题讨论】:

  • 你的 JS 又搞砸了。太多 };你应该学会正确缩进你的代码,它会很好地为你服务......
  • 我在 jsfiddle 上使用了 jstidy,我认为它会正确缩进 :(

标签: javascript jquery google-maps google-maps-api-3 geolocation


【解决方案1】:

initailize();。只是说说而已。

有一个更正的小提琴(再次):http://jsfiddle.net/d5DBh/

这一次,我已经分叉了它,所以没有人会覆盖它。修复:

  • 您在 else 附近多了一个支架。已清除。
  • 您也从未定义或实例化geocoder。已添加此内容
  • initialize 上的错字。

请简化您的代码并实际阅读其他问题的更正。三个错误之一,我已经更正了。

【讨论】:

  • 另外,div 不是根据 HTML5 和 XHTML 的自闭合 HTML 标签。
猜你喜欢
  • 2013-05-06
  • 2014-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多