0

Android 용 Google지도 v2를 사용했으며지도에서 내 위치를 추적하는 파란 점에 대해 좋아합니다. 이동을 시작하면 파란색 점이 화살표로 바뀝니다. 그러나 Google Maps JS API v3에서 달성 한 것은 geolocation을 사용하여 내 위치에 마커를 넣을 수 있다는 것입니다. Google지도 v2에서 파란색 점과 파란색 화살표를 넣는 방법이 있습니까?Android에서 파란색 점으로 마커 변경 Google지도 v3을 사용하는 Google지도 v2

감사합니다. :)

편집 : 당신은 Google Maps Utility Library에서 Geolocation Marker를 사용하여 시도 할 수 있습니다

var map; 
var marker; 
function initialize() { 
var mapOptions = { 
zoom: 18 
}; 
map = new google.maps.Map(document.getElementById('map-canvas'), 
    mapOptions); 

// Try HTML5 geolocation 
if(navigator.geolocation) { 
    mapAutoUpdate(); 
} else { 
// Browser doesn't support Geolocation 
handleNoGeolocation(false); 
} 
} 

function mapAutoUpdate(){ 
navigator.geolocation.getCurrentPosition(function(position) { 
    var pos = new google.maps.LatLng(position.coords.latitude, 
            position.coords.longitude); 

    var shellCenter = new google.maps.LatLng(14.635595,121.033074); 
    marker = new google.maps.Marker({ 
     map:map, 
     draggable:true, 
     animation: google.maps.Animation.DROP, 
     position: pos 
     }); 
     google.maps.event.addListener(marker, 'click', toggleBounce); 


     var shellMarker = new google.maps.Marker({ 
      map: map, 
      position: shellCenter 
     }); 
     var shellCircle = new google.maps.Circle({ 
      map: map, 
      strokeColor: '#FF0000', 
      strokeOpacity: 0.8, 
      strokeWeight: 2, 
      center: shellCenter 
     }); 

     shellCircle.setRadius(40); 

     var result = distance(marker.getPosition().lat(), marker.getPosition().lng(), shellMarker.getPosition().lat(), shellMarker.getPosition().lng()); 
    if(result<shellCircle.getRadius()){ 

     alert("inside!"); 
    } 

    else 
     alert("outside!"); 

    map.setCenter(pos); 
    }, function() { 
    handleNoGeolocation(true); 
    }); 
    setTimeout(mapAutoUpdate, 5000); 
} 



function distance(lat1,lon1,lat2,lon2) { 
var R = 6378137; // km (change this constant to get miles) 
var dLat = (lat2-lat1) * Math.PI/180; 
var dLon = (lon2-lon1) * Math.PI/180; 
var a = Math.sin(dLat/2) * Math.sin(dLat/2) + 
    Math.cos(lat1 * Math.PI/180) * Math.cos(lat2 * Math.PI/180) * 
    Math.sin(dLon/2) * Math.sin(dLon/2); 
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
var d = R * c; 
return d; 
} 

function handleNoGeolocation(errorFlag) { 
if (errorFlag) { 
var content = 'Error: The Geolocation service failed.'; 
} else { 
var content = 'Error: Your browser doesn\'t support geolocation.'; 
} 

var options = { 
map: map, 
position: new google.maps.LatLng(60, 105), 
content: content 
}; 

var infowindow = new google.maps.InfoWindow(options); 
map.setCenter(options.position); 
} 

function toggleBounce() { 

    if (marker.getAnimation() != null) { 
    marker.setAnimation(null); 
    } else { 
    marker.setAnimation(google.maps.Animation.BOUNCE); 
    } 
} 

google.maps.event.addDomListener(window, 'load', initialize); 
+0

안녕하세요. Miguel, 코드를 붙이시겠습니까? – saj

+0

안녕하세요 saj, 내 질문에 감사를 업데이 트했습니다. – Jeongbebs

+0

안녕하세요 누군가 나를 도울 수 있습니까? 감사. – Jeongbebs

답변

0

. 그것은 화살표가 없지만 당신이 원하는 다른 기능이 있습니다.

관련 문제