显然,如果谷歌地图被称为“map_canvas”,它只会显示在 div 中,这给我带来了一些问题。无需过多介绍,我的应用程序是基于 Rails 的,渲染了不同的页面,在一个页面上我想调用 initialize_google_maps() 而在另一页上我想调用 initialize_google_maps2()
但是我怎样才能区分这两个不同的页面呢?有任何想法吗?例如,我正在使用下面的代码,并且在带有 map_canvas2 的页面中,我认为嵌套 map_canvas 很聪明,例如:
<div id="map_canvas2">
<div id="map_canvas"></div>
</div>
但是当我这样做时,这两个函数都会被调用 - initialize_google_maps(); 和initialize_google_maps2();我的代码是:
if ($("#map_canvas").length)
{
initialize_google_maps();
}
if ($("#map_canvas2").length)
{
initialize_google_maps2();
}
任何想法如何区分它们?谢谢。
我的初始化函数类似于(getElementById 必须被称为'map_canvas',从我读过的内容来看):
function initialize_google_maps() {
console.log('map canvas again');
var currentlatlng = new google.maps.LatLng(map_latitude, map_longitude);
var zoom = 10;
var myOptions = {
zoom: zoom,
center: currentlatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP, // ROADMAP, SATELLITE, HYBRID
streetViewControl: false
};
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
console.log("definition of map");
var marker = new google.maps.Marker({map: map, position: currentlatlng, icon:{oppacity:0}});
// map.setCenter(currentlatlng);
// map.setZoom(zoom);
console.log("definition of marker");
var circle = new google.maps.Circle({
map: map,
fillOpacity: 0,
strokeWeight: 2,
strokeOpacity: 0.7,
radius: 10000,
});
console.log("definition of circle");
circle.bindTo('center', marker, 'position');
console.log("circle2");
}