是什么导致了Chrome中的此Google地图标记单击错误
What is causing this Google Maps marker click error in Chrome?
我想知道是否有人可以帮助我。
此页面允许用户过滤(通过复选框)放置在地图上的标记。单击任何标记都会执行"反向地理编码"操作,并结合选择"搜索位置"按钮,然后用户可以查看单击标记的给定半径内的POI。
出于演示目的,如果您选择"硬币"复选框,单击绿色标记,然后选择"搜索位置"按钮,标记将反弹,右侧边栏将填充POI。
我遇到的问题是在Internet Explorer中一切正常,但是当我尝试在Chrome中运行它时,标记会失去"反弹"功能,"反向地理编码"无法运行,并且在错误控制台中我收到以下错误:
Uncaught ReferenceError: reversegeocode is not defined
我的代码的第 55 行,即: reversegeocode();
我已经在这个网站和其他网站上做了一些阅读,并且通过阅读指南,我尝试将代码的这一部分更改为以下内容:
function geocodePosition(pos) {
var clickListener =
document.getElementById('findosgb36lat').value = this.mylat;
document.getElementById('findosgb36lon').value = this.mylon;
document.getElementById('address').value = this.myaddress;
if(bouncingMarker)
bouncingMarker.setAnimation(null);
if(bouncingMarker != this) {
this.setAnimation(google.maps.Animation.BOUNCE);
bouncingMarker = this;
}
else bouncingMarker = null;
}
geocoder.geocode({latLng: pos }, function(responses) {
if (responses && responses.length > 0) {
updateMarkerAddress(responses[0].formatted_address);
} else {
updateMarkerAddress('Cannot determine address at this location.');
}
});
}
function updateMarkerAddress(str) {
document.getElementById('address').value = str;
}
function getAddress(latlng) {
if (!geocoder) {
geocoder = new google.maps.Geocoder();
}
geocoder.geocode({ 'latLng': latlng }, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
// Looping through the result
for (var i = 0; i < results.length; i++) {
if (results[0].formatted_address) {
document.getElementById('address').value =
results[0].formatted_address;
}
}
}
}
)
}
但不幸的是,这不起作用,实际上会产生更多语法错误问题。
我对Javascript比较陌生,所以也许我完全误解了。但我只是想知道是否有人可以看看这个,让我知道我哪里出错了?
非常感谢和亲切的问候
代码反馈:
- 代码中的第二行是什么:
var clickListener =
打算做什么(缺少某些内容)? - 对
geocoder.geocode
的两次调用都传递了一个属性名为:latLng
的对象;传递的对象应该与google.maps.GeocoderRequest
api-doc的结构匹配,该 api-doc 具有名为address
、bounds
、location
和region
的属性。我建议您将这些属性的名称从:latLng
更改为location
。 - 我不确定所示代码的上下文,但此代码部分中
this
的使用看起来很可疑:
if(bouncingMarker != this) {
this.setAnimation(google.maps.Animation.BOUNCE);
bouncingMarker = this;
}
看起来您处于全局函数中,因此看起来在这里使用 this
可能没有意义?
这就是我在第一次通过后看到的全部内容;希望这对你有所帮助——
相关文章:
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- 单击超链接时,如何使用Google Maps API v3缩放地图
- 在angularjs/google地图中显示分支最近的路线
- 创建类似于Google analytics的分析地图
- Javascript:Google Maps API:如果地图加载在隐藏容器中,则为空白地图
- 使用Google地图API v3显示多个标记
- 我是否应该在网站的每个页面上都包含 Google 地图脚本标签
- 使用自动完成服务()将 Google 地图地点限制为特定国家/地区
- Google 地图信息窗口仅显示首次点击时的信息
- 在 Google 地图 API V3 中启用和禁用大量标记
- 使用JavaScript获取Google地图上显示的所有推文时遇到麻烦
- Google Maps Javascript API v3 地图显示在桌面浏览器上,但不会显示在移动浏览器上
- 如何将waze事件标记添加到带有流量的google地图javascript API生成的地图
- 将PHP集成到Javascript中,使用Google API显示地图标记
- 如何制作Google Maps API v3六边形拼接地图,最好是基于坐标的
- Google Maps v3 API-在地图上绘制圆圈
- 外部SVG作为Google地图api标记-是或否
- Google Map JS API-加载地图分幅,但所有图像(标记、缩放控制等)都不加载;t负载2分钟
- 获取属性(邮政编码)并在Google地图API 3中使用
- 如何在PhoneGap中实现windows平台的地图(Google或Bing)