私はGoogle Maps APIを使って作業を進めており、これまでのところ次のとおりです。
var infowindow = null;
$(document).ready(function () { initialize(); });
function initialize() {
var centerMap = new google.maps.LatLng(39.828175, -98.5795);
var myOptions = {
zoom: 4,
center: centerMap,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
setMarkers(map, sites);
infowindow = new google.maps.InfoWindow({
content: "loading..."
});
var bikeLayer = new google.maps.BicyclingLayer();
bikeLayer.setMap(map);
}
var sites = [
['Mount Evans', 39.58108, -105.63535, 4, 'This is Mount Evans.'],
['Irving Homestead', 40.315939, -105.440630, 2, 'This is the Irving Homestead.'],
['Badlands National Park', 43.785890, -101.90175, 1, 'This is Badlands National Park'],
['Flatirons in the Spring', 39.99948, -105.28370, 3, 'These are the Flatirons in the spring.']
];
function setMarkers(map, markers) {
for (var i = 0; i < markers.length; i++) {
var sites = markers[i];
var siteLatLng = new google.maps.LatLng(sites[1], sites[2]);
var marker = new google.maps.Marker({
position: siteLatLng,
map: map,
title: sites[0],
zIndex: sites[3],
html: sites[4]
});
var contentString = "Some content";
google.maps.event.addListener(marker, "click", function () {
//alert(this.html);
infowindow.setContent(this.html);
infowindow.open(map, this);
});
}
}
Fiddleを作成しようとしましたが、表示されませんでした。
そのため、マップは複数の場所と情報ボックスをサポートしていますが、私がまだ非常に混乱している部分はカスタム情報ボックスです. 私はいくつかの検索を行い、この質問/回答を見ましたが、それがどのように機能するかを正確に理解するのに苦労しています. たとえば、#map_canvas
マップがあり、その外側に既存の#info
div (各情報ボックスをロードしたい場所) があるとします。そのため、スタイルは Google Maps API で定義されていません。これは、情報ボックスとして引き継がれる既存の要素です。
これを行う方法をよりよく理解するのを助けるために、誰かが私を微調整することができますか (または、この場合、突き出すのは素晴らしいことです)? 私が考えていることの簡単なスクリーンショットは、ここにあります。マップ上部の濃い赤のボックスがターゲットです。
カスタム マーカーと「アクティブ」状態 (選択したマーカーの金色のアイコン) も別の課題ですが、まだすべての希望をあきらめていません。どんな助けでも大歓迎です。ありがとう!