2011-11-24 39 views
0

我試圖製作一個應用程序,它顯示帶有當前位置標記和與服務器的數據相關的幾個標記的地圖,該標記與當前位置關閉。到目前爲止,我可以渲染地圖,顯示當前位置並獲取與此位置相關的數據。當我嘗試添加有關此數據位置的標記時,會出現問題。 我已經閱讀了很多論壇和網頁,但是我找不到解決方案。 我使用這段代碼添加標記(以嘗試添加他們..):將標記添加到Sencha Touch的Ext.Map中

var marker = new google.maps.Marker({ 
        map: map._map, 
        position: new google.maps.LatLng(bookletMarker[i].location[1],bookletMarker[i].location[0]), 
        title : bookletMarker[i].title, 
        draggable:false, 
        icon: "point.png" 
       }); 

回答

1

描述你應該能夠用的GetMap()從地圖獲取地圖實例,然後添加指針在谷歌地圖API文檔:

marker.setMap(map); 
1

您可以使用map.getMap()來獲得谷歌地圖實例,並在創建標記使用它。

+0

以及如何創建標記? – nalply

+0

我想知道同樣的事情。我注意到的一些事情是,maprender事件不會觸發,如果我使用繪製的事件,則不會傳遞第二個參數。只有第一個arg被DOM元素填充。你有這個工作嗎? – jaffa

3

//此代碼使得用2點的地圖,並顯示路線從點A行進到點B

//在地圖渲染

onMapMaprender: function(map, gmap, eOpts) { 



    var record = Ext.getCmp('Panel').getData(); 
    var map = Ext.ComponentQuery.query('#LocationMap')[0].getMap(); 
    var polyline = new google.maps.Polyline(); 
    var markerImage = new google.maps.MarkerImage(
    'marker.png', 
    new google.maps.Size(32, 31), 
    new google.maps.Point(0, 0), 
    new google.maps.Point(16, 31) 
    ); 


    var lat = record.data.latitude; 
    var lon = record.data.longitude; 
    console.log(lat,lon); 

    var destinationMarker = new google.maps.Marker({ 
     icon: markerImage, 
     position: new google.maps.LatLng(lat,lon), 
     title : 'destination', 
     map: map, 
    }) 
    var latSrc = localStorage.getItem('lat'); 
    var lonSrc = localStorage.getItem('lon'); 
    var sourceMarker = new google.maps.Marker({ 
     icon: markerImage, 
     position: new google.maps.LatLng(latSrc,lonSrc), 
     title : 'source', 
     map: map, 
    }) 


    function dir_callback(a,b){ 
     g=a; 
     route_no=0; 
     if(b=="OK"){ 
      var polyarr = a.routes[route_no].overview_path; 
      polyline.setPath(polyarr); 
      polyline.setMap(map); 
     } 
    } 

    var dirS = new google.maps.DirectionsService(); 

    var req = { 
     origin: sourceMarker.getPosition(), 
     destination: destinationMarker.getPosition(), 
     travelMode: google.maps.DirectionsTravelMode.DRIVING, 
     provideRouteAlternatives : true 
    }; 
    dirS.route(req,dir_callback); 

}, 

//設置地圖

var cr = new google.maps.LatLng(lat,lon); Ext.getCmp('LocationMap')。setMapCenter(cr);

0

在這裏,你已經直接添加圖標圖像路徑,而不是使用MarkerImage對象如下,

var imageIcon = new google.maps.MarkerImage(
      "point.png", 
      new google.maps.Size(32, 32), 
      new google.maps.Point(0, 0), 
      new google.maps.Point(16, 31) 
     ); 

var marker = new google.maps.Marker({ 
       map: map._map, 
       position: new google.maps.LatLng(bookletMarker[i].location[1],bookletMarker[i].location[0]), 
       title : bookletMarker[i].title, 
       draggable:false, 
       icon: imageIcon 
      }); 
相關問題