#google-maps #google-maps-api-3
#google-карты #google-maps-api-3
Вопрос:
Код с использованием API V3.
function initialize ()
{
if (GBrowserIsCompatible())
{
var ch = new GLatLng (0,0);
var myOptions = {
zoom:7,
center: ch,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map"), myOptions);
directionsDisplay = new google.maps.DirectionsRenderer(map, document.getElementById("map"));
directionsDisplay.setMap(map);
}
}
Код с использованием API V2.
function initialize ()
{
if (GBrowserIsCompatible())
{
map = new GMap2 (document.getElementById("map"));
map.setCenter (new GLatLng(0,0),1 );
}
}
Код API V2 работал безупречно, код API V3 не отображает никакой карты.
Какой смысл я упускаю?
РЕДАКТИРОВАТЬ Изменил код V3 следующим образом, но карт по-прежнему нет:
var chicago = new google.maps.LatLng (0, 0);
var myOptions = {
zoom:1,
center: chicago,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map"), myOptions);
Ответ №1:
Убедитесь, что вы загружаете правильный Google Maps API, что у вас есть тег div с идентификатором карты и (для верности) что вы задаете div высоту и ширину. (Возможно, лучше указать высоту и ширину в таблице стилей, но для наглядности я включаю их здесь в строку.)
Вот веб-страница с вашим кодом после редактирования. Попробуйте. У меня работает.
<html>
<head>
<title>Google Map test</title>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
</head>
<body>
<div id="map" style="height:500px;width:500px"></div>
<script>
var chicago = new google.maps.LatLng (0, 0);
var myOptions = {
zoom:1,
center: chicago,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map"), myOptions);
</script>
</body>
</html>
Комментарии:
1. @Ray @ wong2 Наконец-то это решено, я бы не справился без вашей помощи! Проблема заключалась в этой строке,
<script src="http://maps.google.com/maps?file=apiamp;amp;v=2amp;amp;key=GOOGLE_MAPS_KEY"
я заменил ее на строку Троттаsrc="http://maps.google.com/maps/api/js?sensor=false"
, и это помогло: mad: Спасибо всем за их помощь.2. У меня сработало. Не были установлены высота и ширина. Спасибо!
Ответ №2:
В версии V3 все названия изменены. Например, GLatLng
сейчас google.maps.LatLng
. Вам нужно будет пересмотреть свой код, чтобы использовать новые имена.
Ссылка на документы на случай, если у вас их нет
Комментарии:
1. Спасибо, но это ничего не изменило: (Карты по-прежнему не отображаются!
2. Хорошо, я просто полностью выбросил
if (GBrowserIsCompatible())
инструкцию, по-прежнему без изменений. Я действительно хочу это свойство: code.google.com/apis/maps/documentation/javascript/… Доступно ли это в версии V2?3. возможно, глупый вопрос, но вы уверены, что document.getElementById («карта») действительно находит элемент DOM?
4. и это правда, что
GBrowserIsCompatible()
не работает с API V3. Если я включу это, карта не будет отображаться.
Ответ №3:
В версии v3 этого нет GLatLng
, измените его на google.maps.LatLng
center: chicago,
Комментарии:
1. Я тоже пробовал это, не помогло : ( в этом документе это тоже показано без кавычек: code.google.com/apis/maps/documentation/javascript /…
2. @AnishaKaul: можете ли вы создать jsfiddle? (jsfiddle.net ), тогда я смогу узнать больше о вашем случае
3. центр должен быть объектом LatLng, а не строкой, поэтому изменение его на «чикаго» не поможет. К счастью, OP, похоже, исправил эту часть при последующем редактировании вопроса.
Ответ №4:
У меня были те же симптомы, мои карты версии v2 не отображались в версии V3. Когда я просматриваю журналы консоли браузера, я вижу ошибку: неперехваченная ошибка ссылки: GBrowserIsIncompatible не определен.
Согласно руководству по миграции с Google V2 на V3, GBrowserIsIncompatible больше не поддерживается. Я не нашел альтернативы и просто удалил логику, связанную с этой функцией. Этот сайт предлагает просто удалить функцию.
Я обнаружил другие проблемы с миграцией, которые рассматриваются в руководстве по миграции Google, приведенном выше.
Ответ №5:
1. убедитесь, что ваш ключ Google Map API указан правильно.
2- возможно, она не включена в вашей консоли Google Map.
3- ошибочно включен location API вместо map API.