すべて、 データマップにマーカーをいくつか作成しています。作成した地図に基づいて地図の中心を表示
var map;
var icon0;
var newpoints = new Array();
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function'){
window.onload = func
} else {
window.onload = function() {
oldonload();
func();
}
}
}
addLoadEvent(loadMap);
function loadMap() {
map = new GMap2(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(<?php echo $_SESSION['pav_event_latitude']; ?>, <?php echo $_SESSION['pav_event_longitude']; ?>), 12);
map.setMapType(G_NORMAL_MAP);
icon0 = new GIcon();
icon0.image = "http://www.google.com/mapfiles/marker.png";
icon0.shadow = "http://www.google.com/mapfiles/shadow50.png";
icon0.iconSize = new GSize(20, 34);
icon0.shadowSize = new GSize(37, 34);
icon0.iconAnchor = new GPoint(9, 34);
icon0.infoWindowAnchor = new GPoint(9, 2);
icon0.infoShadowAnchor = new GPoint(18, 25);
addPoints(myStores);
}
function addPoints(points)
{
for (var p = 0; p < points.length; ++p)
{
var pointData = points[p];
if (pointData == null) return;
var point = new GLatLng(pointData.latitude, pointData.longitude);
var marker = createMarker(point, icon0, pointData.html);
map.addOverlay(marker);
}
}
function createMarker(point, icon, popuphtml) {
var popuphtml = "<div id=\"popup\">" + popuphtml + "<\/div>";
var marker = new GMarker(point, icon);
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml(popuphtml);
});
function Store(lat, long, text)
{
this.latitude = lat;
this.longitude = long;
this.html = text;
}
var myStores = [<?php echo $jsData;?>, null];
は私がやりたいそれは何で私のすべてのポイントを示しているが、私のマップの中心となることができるように作成されたすべてのポイントの平均値を取得する基本的にされています。ここでマップを表示するために私のコードです時には地図の代わりに地図を表示することがあります。誰もこれのような何かをしたことがありますか?
事前にお問い合わせいただきありがとうございます。
あなたは*すべて*のポイントを表示したい場合は、なぜ、中心点の代わりにバウンディングボックスを設定していませんか? – alex
@alex複数の緯度/経度の座標がある場合、どのようにしてそれらがすべてfitBoundsに収まるかどうかを確認できますか? – user1048676