2015-08-27 2 views
0

Я использую геолокацию, и я могу просмотреть карту своих координат. Затем маркер положил координату. Я хочу изменить положение маркера. Мой код здесь:Геолокация Изменение маркера Postion

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 this и this 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(). Также Lat/Lon 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

Я не хочу, чтобы дать Yilmaz координаты. Я хочу просто поместить маркер куда угодно. – egvrcn

1

Прошу прощения, Эрен о моем предыдущем ответе. Я неправильно понял. Я считаю, что это правильно, что вам нужно.

Показать широты и долготы маркера движения

Refer this site

+0

Спасибо Yılmaz. Но это карта с открытой улицей, я использую google-карту. – egvrcn

Смежные вопросы