2012-09-27 3 views
1

메신저 Google지도 API의 V3에 내 2 개의 정의 된 마크에 내 Google지도의 중심을 설정하려고합니다. 그러나 첫 번째 마커 인 위치 마커 만 가운데에 배치합니다.Sencha Touch 2 +지도 Api - fitbounds()가 작동하지 않습니다.

openShops : function(data) { 
    if (Ext.ComponentManager.get('shops-details') == undefined) { 
     Ext.create('Oxfam.view.ShopsDetails'); 
    } 

    var shopsDetailsPage = Ext.ComponentManager.get('shops-details'); 

    Ext.Viewport.setActiveItem(shopsDetailsPage); 

    var bounds; 

    var map = Ext.create('Ext.Map', { 
     id : 'shopMap', 
     xtype : 'map', 
     useCurrentLocation : { 
      autoUpdate : false 
     }, 
     listeners : { 
      maprender : function(comp, map) { 
       var image = 'img/oxfamLogoSmall.png'; 
       var locationMarker = new google.maps.Marker({ 
        position : new google.maps.LatLng(this._geo 
          .getLatitude(), this._geo.getLongitude()), 
        map : map 
       }); 

       var shopCoord = new google.maps.LatLng(sessionStorage 
         .getItem('longitude'), sessionStorage 
         .getItem('latitude')); 

       var locCoord = new google.maps.LatLng(this._geo 
         .getLatitude(), this._geo.getLongitude()); 

       bounds = new google.maps.LatLngBounds(); 

       var shopMarker = new google.maps.Marker({ 
        position : new google.maps.LatLng(sessionStorage 
          .getItem('longitude'), sessionStorage 
          .getItem('latitude')), 
        map : map, 
        icon : image 
       }); 

       bounds.extend(shopCoord); 
       bounds.extend(locCoord); 
       console.log(shopCoord); 

       map.fitBounds(bounds); 

      }, 

     } 

    }); 

    shopsDetailsPage.setItems(map); 

} 

로그가 올바른 좌표를 기록 내가지도를 렌더링이 코드가 있습니다. 지도는이 보여줍니다 click here to see the map

을하지만, 내 소원은 다음과 같이이다 : click here to see my wish

내가, 내가 시간 인 이후의 솔루션을 찾고 메신저 의미하는 무엇을 잘 모릅니다

만했지만, 골대 밤은 모든 솔루션이 작동 내 응용 프로그램에서 ..

누구든지 내가 뭘 잘못 생각하고 있니? 나는 메신저 내 약한 개발 경험을하기 위해 필요한 모든 정보를 게시 희망, 당신은 위도했고 것 같은이 나에게 보이는

+0

지도의 확대/축소를 설정하려고 했습니까? n을 12와 16 사이의 map.setZoom (n)으로 시도하십시오. –

+0

예,하지만 문제는 zoomlevel이 동적이어야한다는 것입니다. 왜냐하면 좌표는 매번 동일하지 않기 때문입니다. 수동으로 확대/축소 레벨을 설정하려면 두 마커를 서로 넓은 범위에 표시하여 문제가 될 수 있으므로 해당 마커 만 볼 수 있습니다. 솔루션에 대한 귀하의 시도에 감사드립니다. – DenisK

+0

도움이 되셨습니까? http://stackoverflow.com/questions/3407723/google-maps-fitbounds-is-not-working-properly? –

답변

1

) 라운드 경도 잘못된 방향 : 여기에 다시

var shopCoord = new google.maps.LatLng(sessionStorage 
         .getItem('longitude'), sessionStorage 
         .getItem('latitude')); 

그리고 :

var shopMarker = new google.maps.Marker({ 
        position : new google.maps.LatLng(sessionStorage 
          .getItem('longitude'), sessionStorage 
          .getItem('latitude')), 
        map : map, 
        icon : image 
       }); 

이 경우 ('sessionStorage'개체의 변수를 잘못 분류 한 것은 아닙니다) 그러면 문제가 될 수있는 범위에 영향을 미칩니다.

+0

그래 맞아. 내 sessionStorage에서 잘못 표시했습니다. 지금 나는 그것을 올바르게 지명했고, 그것을 다시 조사했다. 하지만 불행히도 같은 문제가 발생합니다 :/-> locationmarker가 중심에 있습니다 – DenisK

+0

bounds 객체에는 모두 4 좌표 (위도 2, 경도 2)가 있습니다 useCurrentLocation 매개 변수는 항상 현재 위치를 가운데에 맞출 수 있습니까? – DenisK

+0

두 마커의 좌표를 알려주시겠습니까? – duncan

0

답변이 없습니다. 모두에게 감사드립니다.

문제는

useCurrentLocation : { 
     autoUpdate : false 
    }, 

자동으로 locationMarker을 중심 것을이었다.

나는 Sencha Touch 구현 위치 지정 방법을 사용하지 않고 html5 위치 정보를 사용하여 ist를 해결했습니다.

도움을 주셔서 감사합니다.

관련 문제