2016-04-04 97 views
1

我想添加一個標記到我的谷歌地圖,並出於某種原因,它不顯示。地圖本身工作正常,但標記不會顯示。我遵循google api文檔,所有其他可自定義的功能都能正常工作。我也嘗試手動添加Lon和Lat,但沒有。我敢肯定它很簡單,我可以忽略,但我不確定它是什麼,任何幫助將不勝感激。提前致謝。如何在谷歌地圖上添加標記針

<% if @location.latitude.present? && @location.longitude.present? %> 
    <script> 
    function initMap() { 

    // Specify features and elements to define styles. 
    var styleArray = [ 
     { 
     featureType: "all", 
     stylers: [ 
     { saturation: -80 } 
     ] 
     },{ 
     featureType: "road.arterial", 
     elementType: "geometry", 
     stylers: [ 
      { hue: "#00ffee" }, 
      { saturation: 50 } 
     ] 
     },{ 
     featureType: "poi.business", 
     elementType: "labels", 
     stylers: [ 
      { visibility: "off" } 
     ] 
     } 
    ]; 

    var myLatLng = {lat: <%= @location.latitude %>, lng: <%= @location.longitude %>}; 

    var map = new google.maps.Map(document.getElementById('map'), { 
     zoom: 12, 
     // styles: styleArray, 
     center: myLatLng 
    }); 

    var marker = new google.maps.Marker({ 
     position: myLatLng, 
     map: map, 
     title: <%= @location.name %> 
    }); 
    } 

    </script> 
    <script async defer 
    src="https://maps.googleapis.com/maps/api/js? signed_in=true&callback=initMap"> 
    </script> 
    <div id="map"></div> 
    <% end %> 

回答

2

看來你沒有設置好的位置

var marker = new google.maps.Marker({ 
    position: markerPos, 
    map: map, 
    title: <%= @location.name %> 
}); 

哪裏是markerPos值..?

try with myLatLng 


var marker = new google.maps.Marker({ 
    position: myLatLng, 
    map: map, 
    title: <%= @location.name %> 
}); 

而只是沒有location.name

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

對不起,這是一個變量,我忘記從我試圖排除故障時刪除。它仍然不起作用。 – halfacreyum

+0

我建議你試試沒有位置標題...我有更新的答案.. – scaisEdge

+0

感謝您的反應scaisEdge,但是,我試過,而我正在調試,但仍然不是。我正在使用API​​ API,不確定這是否與它有關? – halfacreyum

0

調試試的問題是在這裏:

var marker = new google.maps.Marker({ 
     position: myLatLng, 
     map: map, 
     title: <%= @location.name %> 
    }); 

你輸出location.name,但需要在一個引用的字符串。現在,如果您查看源代碼,看看客戶端的代碼,我認爲它看起來像:

var marker = new google.maps.Marker({ 
     position: myLatLng, 
     map: map, 
     title: Hello World 
    }); 

你可能得到一個JS錯誤。試試:

var marker = new google.maps.Marker({ 
     position: myLatLng, 
     map: map, 
     title: '<%= @location.name %>' 
    }); 
+0

這也行不通,我試了一下標題爲:「Hello World」......由於某種原因,它只是沒有顯示出來。 – halfacreyum

+0

聽起來就像你混淆了infowindows標記。正如你發現'標題'屬性只是當你懸停在標記上時顯示出來。 – duncan

相關問題