2016-10-04 96 views
-1

在Google地圖javascript上,地圖左下角有一個可點擊的鏈接,Google圖標用於「在Google地圖上查看此區域」。這個鏈接打開了Google地圖,但是它只關注提供的緯度/經度,並沒有顯示我提供給API的標記。在Google地圖上顯示標記Javascript外部鏈接

    function initMap() { 
        map = new google.maps.Map(document.getElementById('gmap_holder'), { 
         center: {lat: 37.423021, lng: -122.083739}, 
         zoom: 15 
        }); 

        map.setOptions({draggable: false, zoomControl: true, scrollwheel: false, disableDoubleClickZoom: true}); 


        var coord = new google.maps.LatLng(37.423021, -122.083739); 

        var marker = new google.maps.Marker({ 
         position: coord, 
         map: map 
         }); 

       } 

我知道有產生一個URL,將顯示一個標誌,這樣的例子是http://maps.google.com/maps?q=loc:36.26577,-92.54324一種方式,但我似乎無法從API搞清楚。

回答

-1

應該是:

function initMap() { 
    var center = {lat: 37.423021, lng: -122.083739}; 

    var map = new google.maps.Map(document.getElementById('gmap_holder'), { 
    zoom: 4, 
    center: center 
    }); 

    var marker = new google.maps.Marker({ 
    position: center, 
    map: map 
    }); 

    // you can set other options 
} 

更多信息:

  1. 您可以找到所需的屬性在這裏:MapOptions

  2. 例子:Simple markers

編輯: @Sefam,我編輯你的代碼,因爲我看到一些與示例有所不同。我編輯了我的答案,以顯示差異在哪裏。

function initMap() { 
    var map = new google.maps.Map(document.getElementById('gmap_holder'), { 
     center: {lat: 37.423021, lng: -122.083739}, // or try: 
     // center: new google.maps.LatLng(lat: 37.423021, lng: -122.083739), 
     zoom: 15 
    }); 

    map.setOptions({draggable: false, zoomControl: true, scrollwheel: false, disableDoubleClickZoom: true}); 

    var coord = new google.maps.LatLng(37.423021, -122.083739); // here you created instance of LatLng's class 

    var marker = new google.maps.Marker({ 
     position: coord, // instead this try: 
     //position: {lat: 37.423021, lng: -122.083739}, // here is a difference; or try: 
     //position: new google.maps.LatLng(lat: 37.423021, lng: -122.083739), 
     map: map 
    }); 
} 

如果它不工作,請檢查您的API密鑰和回調函數:

<script async defer 
    src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"> 
</script> 

也檢查CSS規則:你設置height爲您的地圖?

此外,我想解釋一下爲什麼我給創建性能centerposition的兩個變種:

center: {lat: 37.423021, lng: -122.083739} 
center: new google.maps.LatLng(lat: 37.423021, lng: -122.083739) 

position: {lat: 37.423021, lng: -122.083739} 
position: new google.maps.LatLng(lat: 37.423021, lng: -122.083739) 

在我的實踐我用兩種變體和兩個作品。

嘗試組合:

center: {lat: 37.423021, lng: -122.083739} //for var map 
position: {lat: 37.423021, lng: -122.083739} //for var marker 

center: new google.maps.LatLng(lat: 37.423021, lng: -122.083739) //for var map 
position: new google.maps.LatLng(lat: 37.423021, lng: -122.083739) //for var marker 

希望我的答案編輯幫你找到解決方案。 請從控制檯發佈錯誤消息,如果我的回答沒有幫助。隨着錯誤消息更容易找到解決方案。

PS。當我需要創建Google地圖時,我總是使用Google地圖API示例,並且它始終有效。

+0

我不明白這與我的代碼有什麼不同,除了先前聲明coord變量並將它用於map初始化中options數組的中心選項。您的「簡單標記」示例與我遇到的問題相同,如果您單擊地圖左下角的Google圖標,它會引用Google地圖,將地圖置於標記位置上,但不顯示標記。事實上,它不這樣做是我的問題在這種情況下。 – Sefam

+0

@Sefam,請看看你的代碼。問題與var coord。對於var標記,請嘗試:position:{lat:37.423021,lng:-122.083739}或postion:center(如果使用我的代碼) – DenysM

相關問題