1

私はJavascript用のGoogleマップを使用しています。私はすべてのオプションを再編成し、実際の場所で作業しました。しかし、スタイルとマーカーを追加すると、効果が表示されません。どうすれば修正できますか?

    var locations = [
      ['MyLocation', 41.084951,29.016048],
    ];


    var waStyle = [
            {
                featureType: "all",
                stylers: [
                    { saturation: -100 }
                ]
            }
        ];

    var map = new google.maps.StyledMapType(waStyle,{name: "MyLoc"});

    var img = new google.maps.MarkerImage("/themes/bc/images/bc_pin.png");

    var map = new google.maps.Map(document.getElementById('map_detail'), {
      zoom: 10,
      center: new google.maps.LatLng(41.084951,29.016048),
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });

    var infowindow = new google.maps.InfoWindow();

    var marker, i;

    for (i = 0; i < locations.length; i++) {  
      marker = new google.maps.Marker({
        position: new google.maps.LatLng(locations[i][1], locations[i][2]),
        map: map
      });

      google.maps.event.addListener(marker, 'click', (function(marker, i) {
        return function() {
          infowindow.setContent(locations[i][0]);
          infowindow.open(map, marker);
        }
      })(marker, i));

    }
4

1 に答える 1

1

あなたのコードを使用すると、マーカーが表示されます。マップで使用していないため、スタイルは表示されません。

ドキュメンテーション

スタイルを実際に使用するには (コードにいくつかのコメントを追加し、上記のドキュメントからコードを追加します):

// Create a new StyledMapType object, passing it the array of styles,
// as well as the name to be displayed on the map type control.
var styledMap = new google.maps.StyledMapType(waStyle,{name: "MyLoc"});

var img = new google.maps.MarkerImage("mapIcons/marker1.png");

// Create a map object, and include the MapTypeId to add
// to the map type control.
map = new google.maps.Map(document.getElementById('map_canvas'), {
  zoom: 10,
  center: new google.maps.LatLng(41.084951,29.016048),
  mapTypeId: google.maps.MapTypeId.ROADMAP,
  mapTypeControlOptions: {
    mapTypeIds: [google.maps.MapTypeId.ROADMAP, 'map_style']
  }
});

//Associate the styled map with the MapTypeId and set it to display.
map.mapTypes.set('map_style', styledMap);
map.setMapTypeId('map_style');

定義したマーカー アイコンを使用するには、それを google.maps.Marker コンストラクターに含めます。

  marker = new google.maps.Marker({
    position: new google.maps.LatLng(locations[i][1], locations[i][2]),
    icon: img,
    map: map
  });

複数のマーカーがある場合、infoWindow をマーカーに関連付ける際に問題が発生することに注意してください。これは関数クロージャー (createMarker 関数) で修正でき、よくある質問です。

あなたのコードに基づく実際の例

于 2012-12-28T14:31:23.740 に答える