2015-08-27 204 views
0

我使用地理位置,我可以查看地圖我的座標。然後,標記放置座標。 我想更改標記位置。 我的代碼在這裏:地理位置更改標記位置

var x=document.getElementById("demo"); 
function getLocation() 
    { 
    if (navigator.geolocation) 
    { 
    navigator.geolocation.getCurrentPosition(showPosition,showError); 
    } 
    else{x.innerHTML="Geolocation is not supported by this browser.";} 
    } 
function showPosition(position) 
    { 
    lat=position.coords.latitude; 
    lon=position.coords.longitude; 
    latlon=new google.maps.LatLng(lat, lon) 
    mapholder=document.getElementById('mapholder') 
    mapholder.style.height='250px'; 
    mapholder.style.width='100%'; 

    var myOptions={ 
    center:latlon,zoom:14, 
    mapTypeId:google.maps.MapTypeId.ROADMAP, 
    mapTypeControl:false, 
    navigationControlOptions:{style:google.maps.NavigationControlStyle.SMALL} 
    }; 
    var map=new google.maps.Map(document.getElementById("mapholder"),myOptions); 
    var marker=new google.maps.Marker({position:latlon,map:map,title:"You are here!"}); 

此代碼獲取我的位置座標。我如何更改標記位置?

回答

1

我發現這個頁面的解決方案。我的問題已經解決了。

refer thisthis site

var map; 
var myCenter = new google.maps.LatLng(37, 35); 
var markersArray = []; 

function clearOverlays() { 
    for (var i = 0; i < markersArray.length; i++) { 
     markersArray[i].setMap(null); 
    } 
    markersArray.length = 0; 
} 

function initialize() { 
    var mapProp = { 
     center: myCenter, 
     zoom: 5, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 

    map = new google.maps.Map(document.getElementById("googleMap"), mapProp); 

    google.maps.event.addListener(map, 'click', function (event) { 
     placeMarker(event.latLng); 
    }); 
} 

function placeMarker(location) { 
    clearOverlays(); 
    var marker = new google.maps.Marker({ 
     position: location, 
     map: map, 
    }); 
    markersArray.push(marker); 
    var infowindow = new google.maps.InfoWindow({ 
     content: 'Latitude: ' + location.lat() + '<br>Longitude: ' + location.lng() 
    }); 
    infowindow.open(map, marker); 
} 

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

moveBus()在initialize()之前被調用。嘗試將該行放在initialize()函數的末尾。另外緯度/經度0,0離開地圖(它是座標,而不是像素),所以當它移動時你看不到它。試試54,54。如果您希望地圖的中心移動到新位置,請使用panTo()。

Demo: http: //jsfiddle.net/ThinkingStiff/Rsp22/ 

HTML: 

<script src = "http://maps.googleapis.com/maps/api/js?sensor=false" > </script> <div id = "map-canvas"> </div> 
CSS: 

    #map-canvas { 
     height: 400 px; 
     width: 500 px; 
    } 

Script: 

    function initialize() { 

     var myLatLng = new google.maps.LatLng(50, 50), 
      myOptions = { 
       zoom: 4, 
       center: myLatLng, 
       mapTypeId: google.maps.MapTypeId.ROADMAP 
      }, 
      map = new google.maps.Map(document.getElementById('map-canvas'), myOptions), 
      marker = new google.maps.Marker({ 
       position: myLatLng, 
       map: map 
      }); 

     marker.setMap(map); 
     moveBus(map, marker); 

    } 

function moveBus(map, marker) { 

    marker.setPosition(new google.maps.LatLng(0, 0)); 
    map.panTo(new google.maps.LatLng(0, 0)); 

}; 

initialize(); 
+0

我不想給座標馬茲。我只想把標記放在任何地方。 – egvrcn

1

對不起埃倫關於我以前的答案。我誤解了。我想,這是你需要的正確的。

顯示經度和緯度上的標記移動

Refer this site

+0

謝謝Yılmaz。但這是開放式街道地圖,我使用谷歌地圖。 – egvrcn