2016-11-26 3 views
-2

Недавно я попытался добавить карту Google на веб-страницу с помощью Google API, но не смог это сделать. Как я могу это исправить? Мне нужно помочь решить эту проблему. Это можно запустить как html-файл, но когда я попытался с моим локальным сервером, сценарий не может загрузить.Как правильно добавить карту Google на страницу html?

<script> 
    function avMap(){ 
    var myCanvas = document.getElementById('map1'); 
    var mapCenter = new google.maps.LatLng(6.949707,80.1831939); 
    var mapOptions = { 
     center: mapCenter, 
     zoom:11, 
     mapTypeId: google.maps.MapTypeId.ROADMAP //SATELLITE, HYBRID, TERRAIN 
    }; 
    var mapAv = new google.maps.Map(myCanvas, mapOptions); 
    var marker1 = new google.maps.Marker({ 
      position: mapCenter, 
      animation: google.maps.Animation.BOUNCE, 
      draggable: false 
     }); 
    marker1.setMap(mapAv); 
    var marker2 = new google.maps.Marker({ 
      position: {lat: 6.4692368, lng: 80.5755751}, 
      animation: google.maps.Animation.DROP, 
      draggable: false 
     }); 
    marker2.setMap(mapAv); 
    //info-window 
    var avNote = "<p>"+"Avissawella is the most beautiful area in Sabaragamuwa/Western border."+" "+"For more details, please visit"+ 
    " "+"<a href='https://en.wikipedia.org/wiki/Avissawella'"+ "target='_blank'>"+"this link"+"</a>"; 
    var infoWin = new google.maps.InfoWindow({ 
     content: avNote, 
     maxWidth:200 
    }); 
    infoWin.open(mapAv, marker1); 
    } 
</script> 
<script src="https://maps.googleapis.com/maps/api/js?callback=avMap"></script> 
+0

где ваш ключ api? –

+0

'<сценарий SRC = "https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap" асинхронной Defer> ' пожалуйста REVER к https://developers.google.com/ maps/documentation/javascript/tutorial – RizkiDPrast

+0

Необходим ли ключ API для добавления карты на сервер? Я могу открыть его правильно как локальный файл. Проблема возникает только тогда, когда я использовал ее для запуска с удаленного или локального сервера. –

ответ

0

Вам не хватает async defer на ваш скрипт.

<script src="https://maps.googleapis.com/maps/api/js?callback=avMap"></script> 

должно быть:

<script src="https://maps.googleapis.com/maps/api/js?callback=avMap" async defer></script> 

proof of concept fiddle

фрагмент кода:

html, 
 
body, 
 
#map1 { 
 
    height: 100%; 
 
    width: 100%; 
 
    margin: 0px; 
 
    padding: 0px 
 
}
<script> 
 
    function avMap() { 
 
    var myCanvas = document.getElementById('map1'); 
 
    var mapCenter = new google.maps.LatLng(6.949707, 80.1831939); 
 
    var mapOptions = { 
 
     center: mapCenter, 
 
     zoom: 11, 
 
     mapTypeId: google.maps.MapTypeId.ROADMAP //SATELLITE, HYBRID, TERRAIN 
 
    }; 
 
    var mapAv = new google.maps.Map(myCanvas, mapOptions); 
 
    var marker1 = new google.maps.Marker({ 
 
     position: mapCenter, 
 
     animation: google.maps.Animation.BOUNCE, 
 
     draggable: false 
 
    }); 
 
    marker1.setMap(mapAv); 
 
    var marker2 = new google.maps.Marker({ 
 
     position: { 
 
     lat: 6.4692368, 
 
     lng: 80.5755751 
 
     }, 
 
     animation: google.maps.Animation.DROP, 
 
     draggable: false 
 
    }); 
 
    marker2.setMap(mapAv); 
 
    //info-window 
 
    var avNote = "<p>" + "Avissawella is the most beautiful area in Sabaragamuwa/Western border." + " " + "For more details, please visit" + 
 
     " " + "<a href='https://en.wikipedia.org/wiki/Avissawella'" + "target='_blank'>" + "this link" + "</a>"; 
 
    var infoWin = new google.maps.InfoWindow({ 
 
     content: avNote, 
 
     maxWidth: 200 
 
    }); 
 
    infoWin.open(mapAv, marker1); 
 
    } 
 
</script> 
 
<script src="https://maps.googleapis.com/maps/api/js?callback=avMap" async defer></script> 
 
<div id="map1"></div>

+0

Спасибо, дорогой. В этом фрагменте кода появляется сообщение об ошибке: Предупреждение API Карт Google: NoApiKeys https://developers.google.com/maps/documentation/javascript/error-messages#no-api-keys Я искал ключи API. В чем разница между нормальным ключом API и премиальным? Что мне выбрать? –

+0

Теперь требуются ключи API (SO и jsfiddle являются grandfathered для доступа без ключа). Вы должны получить нормальный ключ API, если вам не нужен премиальный ключ (и/или хотите заплатить за него). – geocodezip

+0

Если это ответило на ваш первоначальный вопрос, пожалуйста [примите это] (http://meta.stackoverflow.com/questions/5234/how-does-accepting-an-answer-work) – geocodezip