1つのJSPページに複数のマップを配置する必要があるscenerioがあります。そしてオフコースでは、私はマーカーとポリゴンを別々にハンドリングする必要があります。1つのページに複数のGoogleマップ - Map API 3
私が考えている戦略は、マップIDをキーとしてhashmap
のマップを作ることです。
var mapInfo = {mapkey:'',map:''};
地図オブジェクトをmapInfo.mapに配置し、mapkeyを文字列IDにします。
しかし、それぞれのマップにマーカーを配置することはできません。ハッシュからマップオブジェクトを取得するロジックを削除した場合それはうまく動作します。
私はそれにポインタが必要です。ハッシュからマップオブジェクトを取得することは理にかなっています。グローバルマップオブジェクトは必要ありません。私は配列やハッシュからそれをしたい。これは私が考えていることです。続き
は私の初期化とマーカーコードを置くことである。
var geocoder;
var mapHash = [];
var bound = new google.maps.LatLngBounds();
function initMap(map_container_div) {
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(38.5111, -96.8005);
var myOptions = {
zoom:4,
center:latlng,
mapTypeId:google.maps.MapTypeId.ROADMAP,
streetViewControl: false
};
var map = new google.maps.Map(document.getElementById(map_container_div), myOptions);
if (!getMap(map_container_div)){
var mapInfo = {mapkey:'',map:''};
mapInfo.map = map;
mapInfo.mapKey = map_container_div;
mapHash.push(mapInfo);
}
}
function palceMarker(myAddress, mapId){
map = getMap(mapId);
//alert(myAddress + mapId + map)
geocoder.geocode({'address':myAddress}, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var marker = new google.maps.Marker({
map:map,
position:results[0].geometry.location,
title: results[0].formatted_address
});
bound.extend(results[0].geometry.location);
map.fitBounds(bound);
// alert(marker); I got an object here
}
});
}
function getMap(mapKey){
for (var i = 0 ; i < mapHash.length ; i++){
if (mapHash[i].mapKey == mapKey){
return mapHash[i].map;
}
}
return false;
}
..です(あなたのマップのような)ジオコーダオブジェクトの配列を可能性保ちますダイナミックなdiv ... please –