Javascript 谷歌地图APIv3-通过地理代码添加标记
所以我有了这个脚本,我试图在用Javascript创建的地图上添加标记。我想我很快就要做对了(是的,对),但我不确定我做错了什么,我似乎无法解释我所得到的错误 我要做的第一件事是将GoogleAPI密钥添加到我的站点 然后,我在脚本中做的第一件事是加载搜索和映射API:Javascript 谷歌地图APIv3-通过地理代码添加标记,javascript,google-maps,google-maps-api-3,geocoding,Javascript,Google Maps,Google Maps Api 3,Geocoding,所以我有了这个脚本,我试图在用Javascript创建的地图上添加标记。我想我很快就要做对了(是的,对),但我不确定我做错了什么,我似乎无法解释我所得到的错误 我要做的第一件事是将GoogleAPI密钥添加到我的站点 然后,我在脚本中做的第一件事是加载搜索和映射API: (function ($) { $("document").ready(function() { google.load("maps", 2, {"callback": mapsLoaded}); }); })(
(function ($) {
$("document").ready(function() {
google.load("maps", 2, {"callback": mapsLoaded});
});
})(jQuery);
加载“maps”API后,将调用mapsLoaded方法:
function mapsLoaded() {
//Create the options for the map and imediately after create the map.
var myOptions = {
zoom: 14,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("result_map"), myOptions);
showUserLocation(map);
var image = '../misc/planbMarker.png';
var postcodes = document.getElementsByClassName('result-postcode');
var geocoder = new google.maps.Geocoder();
for(var i = 0; i < postcodes.length; i++) {
var address = postcodes[i].value;
geocoder.geocode({'address': address}, function(results, status){
if (status == google.maps.GeocoderStatus.OK) {
var marker = new google.maps.Marker({
map: map,
position: results[i].geometry.location
});
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
}
}
现在,当我运行这个程序时,我得到的错误是:uncaughttypeerror:cannotcallmethod'appendChild'of null at maps:1
,后跟:uncaughttypeerror:Object#没有方法“\uu gjsload”
,大约5秒后,这也会在javascript控制台中弹出:
Error in event handler for 'undefined': TypeError: Cannot call method 'postMessage' of null
at chrome/RendererExtensionBindings:100:18
at chrome-extension://bmagokdooijbeehmkpknfglimnifench/contentScript.js:128:13
at [object Object].dispatch (chrome/EventBindings:182:28)
at chrome/RendererExtensionBindings:99:24
at [object Object].dispatch (chrome/EventBindings:182:28)
at Object.<anonymous> (chrome/RendererExtensionBindings:149:22)
“未定义”的事件处理程序中出现错误:TypeError:无法调用null的方法“postMessage”
在chrome/RenderExtensionBindings:100:18
在铬-extension://bmagokdooijbeehmkpknfglimnifench/contentScript.js:128:13
在[object object].dispatch(chrome/EventBindings:182:28)
在chrome/RenderExtensionBindings:99:24
在[object object].dispatch(chrome/EventBindings:182:28)
反对。(chrome/RenderExtensionBindings:149:22)
另一个可能的症状是,当这个错误发生时,Chrome显示一个空白页面(如果你去查看源代码,标记就在那里,但页面是空白的)。我正在运行Drupal 7.10
有人知道我做错了什么吗?首先,谷歌地图API 3不需要API密钥(除非我们指的是最近推出的用于每日地图浏览量超过25000次的网站的密钥,这些网站可能需要付费使用)。听起来你把API 2所需的键和API 3的代码混在一起了 其次,这是完全错误的。”i'是邮政编码数组的变量,它与结果数组没有关系
for(var i = 0; i < postcodes.length; i++) {
var address = postcodes[i].value;
geocoder.geocode({'address': address}, function(results, status){
if (status == google.maps.GeocoderStatus.OK) {
var marker = new google.maps.Marker({
map: map,
position: results[i].geometry.location
for(变量i=0;i
Hi Duncan,谢谢你的回复。我又看了一遍我的代码,阅读了很多Google Maps JS API 3,我意识到我所做的是完全错误的。谢谢你为我指明了正确的方向。
for(var i = 0; i < postcodes.length; i++) {
var address = postcodes[i].value;
geocoder.geocode({'address': address}, function(results, status){
if (status == google.maps.GeocoderStatus.OK) {
var marker = new google.maps.Marker({
map: map,
position: results[i].geometry.location