我正在尝试使用带有 Jquery 的 gmap3.net 插件创建地图,然后脚本应该监视它的移动,如果看到任何移动,则根据可查看地图的当前位置和半径(接近度)运行 xml 更新。
我还必须进行调整大小检查,因为它最初是在一个隐藏的 html5 页面中使用的,所以我在一个图块中看到地图,直到你刷新视图.....
所有这一切都说我在第 75 行字符 5(标记)附近遇到问题,开发控制台说 SCRIPT16386:不支持此类接口。如果有人能看到我哪里出错了,我将不胜感激试图学习这个插件的格式以及 jquery 和这个应用程序的其他一些东西,我想我开始盲目编码了哈哈.....
var mylatLng = new google.maps.LatLng();
$(this).gmap3({action:'trigger', name:'resize'});
jQuery.noConflict(); jQuery(document).ready(function(){
//MAP ZOOM (0 to 20)
var zoomLevel = 10,
gMap = jQuery("#map_canvas"),
//iPad,iPhone,iPod...
deviceAgent = navigator.userAgent.toLowerCase(),
iPadiPhone = deviceAgent.match(/(iphone|ipod|ipad)/);
//iPad Stuff
if (iPadiPhone) {
//ADD MAP CONTROLS AND POST ARROWS
// jQuery("#footer").prepend('<div class="markerNav" title="Prev" id="prevMarker">‹</div><div id="markers"></div><div class="markerNav" title="Next" id="nextMarker">›</div><div id="mapTypeContainer"><div id="mapStyleContainer"><div id="mapStyle" class="satellite"></div></div><div id="mapType" title="Map Type" class="satellite"></div></div>');
} else {//IF NOT iPad
jQuery('#zoomIn').live('click',function(){
zoomLevel += 1;
gMap.gmap3({action: 'setOptions', args:[{zoom:zoomLevel}]});
});
jQuery('#zoomOut').live('click',function(){
zoomLevel -= 1;
gMap.gmap3({action: 'setOptions', args:[{zoom:zoomLevel}]});
});
//ADD MAP CONTROLS AND POST ARROWS
//jQuery("#footer").prepend('<div class="markerNav" title="Prev" id="prevMarker">‹</div><div id="markers"></div><div class="markerNav" title="Next" id="nextMarker">›</div><div id="mapTypeContainer"><div id="mapStyleContainer"><div id="mapStyle" class="satellite"></div></div><div id="mapType" title="Map Type" class="satellite"></div></div><div class="zoomControl" title="Zoom Out" id="zoomOut"><img src="images/zoomOut.png" alt="-" /></div><div class="zoomControl" title="Zoom In" id="zoomIn"><img src="images/zoomIn.png" alt="+" /></div>');
}
// jQuery('body').prepend("<div id='target'></div>");
gMap.gmap3({
action: 'init',
onces: {
bounds_changed: function(){
var number = 0;
jQuery(this).gmap3({
action:'getBounds',
callback: function (){
if (!bounds) return;
// Get Gmap radius / proximity start
var bounds = new google.maps.LatLngBounds();
var sw = bounds.getSouthWest();
var ne = bounds.getNorthEast();
var proximitymeterswne = google.maps.geometry.spherical.computeDistanceBetween (sw, ne);
var proximity = proximitymeterswne * 0.000621371192;
// Get Gmap radius / proximity End
}
});
}
}
},{
action: 'setOptions', args:[{
zoom:zoomLevel,
scrollwheel:true,
disableDefaultUI:false,
disableDoubleClickZoom:false,
draggable:true,
mapTypeControl:true,
panControl:true,
scaleControl:true,
streetViewControl:true,
zoomControl:true,
//MAP TYPE: 'roadmap', 'satellite', 'hybrid'
mapTypeId:'roadmap'
}]
});
});
// PROBLEM WITH THE FOLLOWING LINE
$(function(){
// PROBLEM WITH THE ABOVE LINE
$("#map_canvas").gmap3(
{
action : 'geoLatLng',
callback : function(latLng){
if (latLng){
//$('#resultat-geolocalisation').html('sucess !');
$(this).gmap3({action:'trigger', name:'resize'});
$(this).gmap3(
{
action: 'addMarker',
latLng:latLng,
options:{
icon:new google.maps.MarkerImage("2.png")
},
callback: function (){
if (!bounds) return;
// Get Gmap radius / proximity start
var bounds = new google.maps.LatLngBounds();
var sw = bounds.getSouthWest();
var ne = bounds.getNorthEast();
var proximitymeterswne = google.maps.geometry.spherical.computeDistanceBetween (sw, ne);
var proximity = proximitymeterswne * 0.000621371192;
// Get Gmap radius / proximity End
},
},
{ action: 'addTrafficLayer'},
{
action: 'addKmlLayer',
url: 'http://www.mykml',
options:{
suppressInfoWindows: true,
preserveViewport: false
}
}
);
} else {
//$('#resultat-geolocalisation').html('cant geolocate!');
alert('Location Not Found');
}
}
}
);
});