2017-10-20 92 views
-1

我試過不同的代碼,仍然不知道爲什麼我的標記不顯示。 我一直在尋找和閱讀谷歌開發人員的文檔,並嘗試了所有他們解釋的方式,沒有任何東西。也嘗試看看是否有任何sintax錯誤(並且必須是......),但由於我對我來說是新手,看起來沒有錯誤。爲什麼不在地圖上顯示標記?

那麼,有人知道我的代碼有什麼問題嗎?

<?php 

get_header(); ?> 

<div id="map"></div><!-- #map--> 
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAp9iQ2oC3PEvy20_6aDpAPGLT8sFDqAjI&libraries=geometry,places&signed_in=true"></script> 
<script type="text/javascript"> 
    google.maps.event.addDomListener(window, 'load', gmaps_results_initialize); 

    function gmaps_results_initialize() { 
     var map = new google.maps.Map(document.getElementById('map'), { 
     zoom:   3, 
     center:   new google.maps.LatLng(28.291564, 16.62913), 
     mapTypeControl: true, 
     mapTypeControlOptions: { 
      style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, 
      position: google.maps.ControlPosition.RIGHT_BOTTOM 
     }, 
     zoomControl: true, 
     zoomControlOptions: { 
      position: google.maps.ControlPosition.LEFT_CENTER 
     }, 
     scaleControl: true, 
     streetViewControl: true, 
     streetViewControlOptions: { 
      position: google.maps.ControlPosition.LEFT_BOTTOM 
     }, 
     fullscreenControl: true 
     }); 
     var infoWindow = new google.maps.InfoWindow({map: map}); 

     // Try HTML5 geolocation. 
      if (navigator.geolocation) { 
      navigator.geolocation.getCurrentPosition(function(position) { 
      var pos = { 
      lat: position.coords.latitude, 
      lng: position.coords.longitude 
      }; 

      infoWindow.setPosition(pos); 
      infoWindow.setContent('Location found.'); 
      map.setCenter(pos); 
      }, function() { 
       handleLocationError(true, infoWindow, map.getCenter()); 
      }); 
     } else { 
      // Browser doesn't support Geolocation 
      handleLocationError(false, infoWindow, map.getCenter()); 
      } 

     };  
</script> 
<script> 
     var myLatlng = new google.maps.LatLng(-25.363882,131.044922); 
     var mapOptions = {} 
     var map = new google.maps.Map(document.getElementById("map"), mapOptions); 
     var marker = new google.maps.Marker({}); 

     // To add the marker to the map, call setMap(); 
     marker.setMap(map); 
    </script> 
<script src="/geo.js"></script> 
<?php 
get_sidebar(); 
get_footer(); 

回答

0

我認爲它是因爲你正在爲地圖創建兩個對象。 使地圖對象不變。不要重新初始化它。

你已經在函數外面添加了標記,並且使得它在initialize方法之前執行,當google映射腳本加載時會調用它,因此不會添加標記,因爲map未初始化。創建單獨的方法TestMarker並從初始化中調用它。

function addMarker(location) { 
    marker = new google.maps.Marker({ 
     position: location, 
     map: map 
    }); 
} 

function TestMarker() { 
     CentralPark = new google.maps.LatLng(37.7699298, -122.4469157); 
     addMarker(CentralPark); 
} 

呼叫TestMarker內部初始化函數

注:地圖是這裏的常數。

+0

您的意思是? 'const map = new google.maps.Map(document.getElementById('map'),'它仍然不起作用。無論如何謝謝你回答我。 – Caesar

+0

對不起,我編輯了我的答案。請參閱 –

+0

嗨,再次感謝。我在初始化時調用了TestMarker函數,並且改變了你寫的最後一個腳本代碼,但是仍然沒有工作,我感到我有點遲疑... – Caesar