Google Maps API v3: присоединить слой к MapTypeControl - PullRequest
2 голосов
/ 14 января 2012

Это может показаться глупым вопросом, но я не могу найти ответ. Как прикрепить слой (например, TrafficLayer или KmlLayer) к MapTypeControl карты?

  var mapOptions = {
     center: new google.maps.LatLng(38.181579, -85.778988),
     zoom: 15
     mapTypeControlOptions: {
        mapTypeIds: [
           google.maps.MapTypeId.ROADMAP,
           'Traffic'
        ]
     },
     mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
  var trafLayer = new google.maps.TrafficLayer();

  var trafficMapType = // SCIENCE!

  map.mapTypes.set('Traffic', trafficMapType);

Что происходит между ними? Как вы получаете trafficMapType?

Ответы [ 3 ]

1 голос
/ 15 января 2012

Ознакомьтесь с разделом пользовательских элементов управления документации: http://code.google.com/apis/maps/documentation/javascript/controls.html#CustomControls

1 голос
/ 14 января 2012

http://code.google.com/apis/maps/documentation/javascript/layers.html#TrafficLayer

Уровень трафика доступен как слой , а не тип карты . Пример кода с сайта Google code ниже:

var myLatlng = new google.maps.LatLng(34.04924594193164, -118.24104309082031);
var myOptions = {
  zoom: 13,
  center: myLatlng,
  mapTypeId: google.maps.MapTypeId.ROADMAP
}

var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

var trafficLayer = new google.maps.TrafficLayer();
trafficLayer.setMap(map);
0 голосов
/ 28 ноября 2012

Для слоя трафика я нашел URL, где есть только функции трафика.
Этот URL-адрес может использоваться в ImageMapType для предоставления дополнительных листов для основного типа карты.

Это выглядит так:

var trafficTile = new google.maps.ImageMapType({
  tileSize: new google.maps.Size(256, 256),
  name: "Trafico",
  getTileUrl: function (coord, zoom){
    var s = 'Galileo'.substring(0, (3 * coord.x + coord.y ) & 7 ),
      BALANCER = coord.x + coord.y & 1,
      path = [
        "https://mts" + BALANCER + ".googleapis.com/vt?hl=es-419&src=apiv3&lyrs=m@199000000,traffic|seconds_into_week:-1&style=15",
        'z=' + zoom,
        'x=' + coord.x,
        'y=' + coord.y,
        's=' + s
      ]
    ;
    return path.join('&');
  }
});

map.overlayMapTypes.insertAt(0, trafficTile);

Возможно, вы захотите изменить язык хоста (hl param) или установить пользовательские стили (apistyle param)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...