Проблема с MapTypeControlOptions в Google Maps API v3 с включенным подключаемым модулем Google Earth

Я использую Google Maps API V3 с включенным подключаемым модулем Google Earth. Я пытаюсь отобразить четыре варианта просмотра карты (рельеф, спутник, спутник с метками (также известный как гибрид) и земля.

С последней закомментированной строкой (плагин Google Earth не включен) все работает правильно. Когда последняя строка находится на месте, все 'mapTypeControlOptions' игнорируются. В этом случае я просто пытаюсь указать типы карт, но если я укажу что-то еще в этом блоке, это также будет проигнорировано.

Есть ли обходной путь для этого или я что-то накручиваю? Я играл с ним в течение нескольких дней и не вижу, что я мог перепутать. Живой пример этого с остальным контекстом можно найти по адресу: http://grandlin.es:5000.

map = new google.maps.Map(document.getElementById('map'), {
    zoom: 13,
    center: new google.maps.LatLng(39.797, -105.776),
    streetViewControl: false,
    mapTypeId: google.maps.MapTypeId.TERRAIN,
    mapTypeControlOptions: {
        mapTypeIds: [google.maps.MapTypeId.TERRAIN, google.maps.MapTypeId.HYBRID, google.maps.MapTypeId.SATELLITE] 
    }
});

//var googleEarth = new GoogleEarth(map);

Спасибо!


person dirth    schedule 27.09.2012    source источник
comment
Был понижен до API V2, хотя он перестанет работать через 4 месяца... Надеюсь, между этим и потом они придумают решение. Даже их недавно выпущенная документация использует V2 API...   -  person dirth    schedule 26.01.2013


Ответы (2)


Может быть, попробуйте использовать это вместо var googleEarth = .....

map.addMapType(G_SATELLITE_3D_MAP);

Для примера того, как это используется, просмотрите источник на этой странице.

http://earth-api-samples.googlecode.com/svn/trunk/demos/mapsapi/index.html

person Boat    schedule 27.09.2012
comment
Спасибо, но, похоже, это работает только для Google Maps API V2. Возможно, мне просто нужно использовать этот старый API, если я не могу найти решение для текущего. - person dirth; 27.09.2012
comment
Не используйте API V2, он устарел. API версии 2 перестанет работать 19 мая 2013 г. - person Tomik; 28.09.2012
comment
Это основная причина, по которой я не хочу. Но похоже, что это невозможно из того, что я видел в V3 API. Что выглядит как-то возмутительно. - person dirth; 28.09.2012

Это можно сделать с помощью google-maps-utility-library.

См. страницу API Google Планета Земля для Google. Карты v3.

Существует даже базовый рабочий пример интеграции карты/земли, который позволяет переключаться между КАРТА, СПУТНИК, ЗЕМЛЯ.

См.: http://google-maps-utility-library-v3.googlecode.com/svn/trunk/googleearth/examples/earth.html

person Fraser    schedule 15.12.2013
comment
если я не толстый (что вполне возможно), пример, на который вы ссылаетесь, не делает того, что написано на банке. Я видел это с некоторыми другими примерами Google, многие из них просто больше не работают, вероятно, из-за изменений API, внесенных позже. - person totallyNotLizards; 10.07.2014
comment
да, я туплю, у меня не установлен веб-плагин Google Earth. не обращайте внимания на последнее :) - person totallyNotLizards; 10.07.2014