地理位置更改标记位置
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。我只想把标记放在任何地方。以上是关于地理位置更改标记位置的主要内容,如果未能解决你的问题,请参考以下文章