首页 文章

Google Map V3 Infowindow.open错误

提问于
浏览
2

我使用v3 google map api,但是当我点击 Map 上的标记时,我看到以下错误消息:

b.K is not a function (72 out of range 43)

这是我的代码:

var markers = []; var map; var markerClusterer = null; var load_ids = []; var矩形; var infowindow = new google.maps.InfoWindow(); function showAddress(xaddress,xzoom){clearOverlays();
$( “#div_item_list”)HTML( “”) .
$('#map_canvas2') . gMap({address:xaddress,zoom:xzoom,
onComplete:function(){

//来自地址的标记
geocoder = new google.maps.Geocoder();
geocoder.geocode({'address':xaddress},function(results,status){
if(status == google.maps.GeocoderStatus.OK){
map.gMap('addMarker',{
key:'mainMarker',
纬度:结果[0] .geometry.location.lat(),
经度:结果[0] .geometry.location.lng(),
弹出:是的
}); > map_search(结果[0] .geometry.location.lat(),结果[0] .geometry.location.lng());
. map.data( 'GMAP')gmap.setCenter(结果[0] .geometry.location);
//提供clearOverlays();
}
其他{
警报(“地理编码器由于:”状态失败);
}
});
}
});
返回虚假;
function clearOverlays(){if(markers){
for(i in markers){
标记物[I] .setMap(空);
}
}
如果(markerClusterer){
markerClusterer.clearMarkers();
}
function map_search(lat,lon){$(“#div_item_list”) . html('<img src =“images / loader.gif”/>');
$就({
url:“search / map / find_item”,
类型:“POST”,
dataType:“json”,
数据:“lat =”lat“&lon =”lon,
成功:函数(msg){
if(msg.length> 0){
//在gmap上添加标记
markers = [];
$ .each(msg,function(item){
load_ids.push(MSG [项目] [ 'id_item']);
html_data ='<b>'msg [item] ['code']'('msg [item] ['case_transtype']')</ b>
'
'地址:'msg [item] ['address_name'];
var marker = createMarker(msg [item] ['id_item'],markers,msg [item] ['lat'],msg [item] ['lon'],html_data);
markers.push(标记);

});

markerClusterer = new MarkerClusterer(map.data('gmap') . gmap,markers);
load_grid2(LAT,LON);
load_listener();

}
其他{
$( “#div_item_list”)HTML( “空”);
}
}
}); //结束ajax
函数createMarker(object_id,markers,lat,lng,html_data){var _gicon = {
image:'images / item.png',
iconSize:new google.maps.Size(32,32),
iconAnchor:new google.maps.Point(12,46)
};
gicon = new google.maps.MarkerImage(_gicon.image,_gicon.iconSize,null,_gicon.iconAnchor);
var latLng = new google.maps.LatLng(lat,lng);
var marker = new google.maps.Marker({
'position':latLng,
'icon':gicon
});

google.maps.event.addListener(marker,'click',function(){
infowindow.close();
infowindow.setContent(html_data);
infowindow.open( Map ,标记物);
//改变屏幕
$('#point_show_'object_id) . addClass(“ui-state-hover”);
$('#point_show_'object_id).trigger(“focus”);
});
返回标记;}

执行脚本 infowindow.open(map,marker); 时出现错误

例如,您可以检查 http://cremp.solusi247.com/eways/en/search/map/index/ ,在地址文本框中使用关键字'Riyadh'进行搜索 . 并单击1房屋图标 .

1 回答

  • 2

    请确保您在html页面中包含"infobox.js"脚本标记 AFTER google maps脚本标记,例如:

    <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=true"></script>
    <script type="text/javascript" src="infobox.js"></script>
    

    “b.K”只是infowindow.open方法调用的混淆输出 . 如果您使用GWT(Google Web Toolkit),为了查看一些调试信息,请将GWT编译样式设置为“Pretty”或“Detailed”;仅在发布时使用“混淆”样式 . 另外,不要忘记将代码括在:

    try {
      ...
    } catch(ex) {
      alert(ex.message);
    }
    

    在调试时捕获最终的JavaScript语法错误 .

相关问题