地理位置更改标记位置

Posted

技术标签:

【中文标题】地理位置更改标记位置【英文标题】:Geolocation Change Marker Position 【发布时间】:2015-08-27 11:23:46 【问题描述】:

我使用地理定位,我可以查看地图我的坐标。然后,标记放置坐标。 我想更改标记位置。 我的代码在这里:

var x=document.getElementById("demo");
function getLocation()
  
  if (navigator.geolocation)
    
    navigator.geolocation.getCurrentPosition(showPosition,showError);
    
  elsex.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 site

【讨论】:

谢谢耶尔马兹。但这是开放街道地图,我使用 google-map。【参考方案2】:

我在此页面中找到了解决方案。我的问题就这样解决了。

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);

【讨论】:

【参考方案3】:

moveBus() 在 initialize() 之前被调用。尝试将该行放在您的 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();

【讨论】:

我不想给出坐标 Yilmaz。我只想把标记放在任何地方。

以上是关于地理位置更改标记位置的主要内容,如果未能解决你的问题,请参考以下文章

更改地图视图而无需更改位置

如何更改谷歌地图默认的当前位置标记颜色

如何更改标记在 Android Map v2 上的位置

如何根据 y 位置动态更改标记点的颜色

Java Android Google 地图更改缩放控件位置并将相机设置为标记

在谷歌地图android中更改标记的原点