2017-03-09 1 views
0

Ext.js를 사용하는 방법을 배우므로 정말 신참입니다.GMapPanel이 마커를 표시하지 않습니다.

Google지도 API를 사용하여지도를 만들었지 만 특정 위치에 마커를 추가하려하지만 마커가 표시되지 않고 콘솔에서 오류가 발생하지 않습니다. 지도 자체를 보아라, 나는 내가 무엇을 잘못하고 있는지에 관해 알고 싶다.

내 코드 :

Ext.onReady(function() { 
    var w = Ext.create('Ext.window.Window', { 
     height: 400, 
     width: 600, 
     layout: 'fit', 
     header: false, 
     border: false, 
     style: 'padding: 0; border-width: 0;', 
     closable: false, 
     draggable: false, 
     height: Ext.getBody().getViewSize().height, 
     width: Ext.getBody().getViewSize().width, 
     items: [{ 
      xtype: 'gmappanel', 
      region: 'center', 
      cls: 'reset-box-sizing', 
      center: new google.maps.LatLng(53.419824, -3.0509294), 
      mapOptions: { 
       zoom: 16, 
       mapTypeId: google.maps.MapTypeId.ROADMAP 
      } 
     }] 
    }); 

    var options = { 
     lat: 53.419824, 
     lng: -3.0509294, 
     marker: { 
      title: "Hello World!" 
     }, 
     listeners: { 
      click: function (e) { 

      } 
     } 
    }; 

    addLocation(options); 

    function addLocation(options) { 

     var gm = w.down('gmappanel'); 
     var mpoint = new google.maps.LatLng(options.lat, options.lng); 

     var marker = gm.addMarker(mpoint, options.marker, false, false, options.listeners); 


     var infowindow = new google.maps.InfoWindow({ 
      content: "Some label" 
     }); 
     google.maps.event.addListener(marker, 'click', function (gm, marker) { 
      infowindow.open(gm, marker); // if still you can not open than use infowindow.open(gm, this) 
     }); 
    } 

    w.show(); 
}); 

당신을 감사드립니다.

답변

1

봅니다 다음 코드를 사용하여 마커를 만들 수 있습니다 :

var markers = []; 

var mpoint = new google.maps.LatLng(options.lat, options.lng); 

var marker = new google.maps.Marker({ 
    position: mpoint, 
    title: options['marker']['title'] 
}); 

var infowindow = new google.maps.InfoWindow({ 
    content: "Some label" 
}); 

google.maps.event.addListener(marker, 'click', function (gm, marker) { 
    infowindow.open(gm, marker); // if still you can not open than use infowindow.open(gm, this) 
}); 

markers.push(marker); 

gm.markers = markers; 

또는 더 간단하게

var gm = w.down('gmappanel'); 
var markers = []; 

markers.push(marker); 

gm.markers = markers; 

당신이있어 작업 예를 https://fiddle.sencha.com/#fiddle/1rt5

을 찾을 수 있습니다
관련 문제