1

ラベル付きの複数のマーカーを実装したいと思います (ここに文書化されています: http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerwithlabel/1.0.1/docs/examples.html ) 。コードの書き方に問題があります。

たとえば、2 つのマーカーの場合、次のコードを使用する必要があります。

var latlng1 = new google.maps.LatLng(49, -123);
var latlng2 = new google.maps.LatLng(48, -123);

var marker1 = new MarkerWithLabel({
       position: latlng1,
       draggable: true,
       map: map,
       labelContent: "abcd",
       labelAnchor: new google.maps.Point(22, 0),
       labelClass: "labels",
       labelStyle: {opacity: 0.75}
     });

 var marker2 = new MarkerWithLabel({
       position: latlng2,
       draggable: true,
       map: map,
       labelContent: "efgh",
       labelAnchor: new google.maps.Point(22, 0),
       labelClass: "labels",
       labelStyle: {opacity: 0.75}
     });

これでいいのですが、10 個のマーカーはどうでしょうか。私はこのようなことをしたいと思います:

var locations = [
    new google.maps.LatLng(49, -123),
    new google.maps.LatLng(48, -123),
    ];

var labels = [
    "abcd",
    "efgh",
    ];

問題は、「for」関数を作成すると、マップにマーカーが表示されないことです。

for ( var i = 0; i < locations.length; i++ )
{
    var marker = new MarkerWithLabel({
        position: locations[i],
        draggable: true,
        labelContent: labels[i],
        labelAnchor: new google.maps.Point(22,0),
        labelClass: "labels",
        labelStyle: {opacity: 0.85}});
}

プログラミングが苦手なので、どこが悪いのか教えてください。

この後、もちろん情報ウィンドウを追加する問題がありますが、それについては後で説明しましょう。

お時間をいただきありがとうございます。

4

4 に答える 4

0

返信いただきありがとうございます。はい、上記のスレッドに map パラメーターを含めるのを忘れていました。コードに含まれていました。

問題は、実際にはアイコンをマーカーに関連付けることに関係していました。

new google.maps.MarkerImage('http://google-maps-icons.googlecode.com/files/black01.png')

それに応じて配列を記述しなかったため、コードは実際にはマーカーセクションに到達しませんでした(これで問題ありませんでした)。

for 関数の内容は次のようになります。

var marker = new MarkerWithLabel({
        position: locations[i],
        draggable: true,
        map: map,
        icon: icons[i], 
        labelContent: labels[i],
        labelAnchor: new google.maps.Point(22,0),
        labelClass: "labels",
        labelStyle: {opacity: 0.85}});
于 2011-01-24T16:00:11.057 に答える
0

forループに含めるのを忘れました

map: map,

「ドラッグ可能:真」の下

これが重要な理由は、マーカーを追加するマップを MarkerWithLabel に伝える必要があるためです。ページに複数のマップがある場合があります。

于 2011-01-24T07:14:58.477 に答える
0

詳細については、この記事と参考サイトをご覧ください。

Googleマップのラベル付きの複数のマーカー

<script type="text/javascript">
 //Generate Markers Value Array
 var markers = [
 <asp:Repeater ID="rptMarkers" runat="server">
 <ItemTemplate>
            {
            "title":'<%# Eval("Area") %>',
            "lat": '<%# Eval("Latitute") %>',
            "lng": '<%# Eval("Longitute") %>',
            "description": '<%# Eval("Address") %>'
        }
 </ItemTemplate>
 <SeparatorTemplate>
    ,
 </SeparatorTemplate>
 </asp:Repeater>
 ];

</script>

///

  for (i = 1; i <= markers.length; i++) {
    var data = markers[i-1]
    var myLatlng = new google.maps.LatLng(data.lat, data.lng);

    var marker = new MarkerWithLabel({
        position: myLatlng,
        map: map,
        title: data.title,
        labelContent: i,
        labelAnchor: new google.maps.Point(7, 30),
        labelClass: "labels", // the CSS class for the label
        labelInBackground: false
     });

    (function (marker, data) {
        google.maps.event.addListener(marker, "click", function (e) {
            infoWindow.setContent(data.description);
            infoWindow.open(map, marker);
        });
    })(marker, data);

  }

参照 :

Asp.netを使用したGoogleマップのラベル付き複数マーカー

于 2013-06-18T12:53:05.440 に答える
-1

ループの前に、最初にマーカーを配列として宣言する必要があります。

var marker = new Array(); 

次に、ループ内で MarkerwithLabel クラスとしてのみ割り当てます

for ( var i = 0; i < locations.length; i++ )
{
    marker = new MarkerWithLabel({ pro})

}
于 2011-06-07T09:27:22.267 に答える