Google maps api 3 谷歌地图js API V3:在“地图”上显示方向箭头;“我的位置标记”;
使用GoogleMapsJSAPIv3,我很容易添加了一个标记来显示用户的位置(基于navigator.geolocation) 如何添加指示用户移动方向的箭头(可能使用deviceorientation事件) 编辑:这是我的当前代码:Google maps api 3 谷歌地图js API V3:在“地图”上显示方向箭头;“我的位置标记”;,google-maps-api-3,device-orientation,Google Maps Api 3,Device Orientation,使用GoogleMapsJSAPIv3,我很容易添加了一个标记来显示用户的位置(基于navigator.geolocation) 如何添加指示用户移动方向的箭头(可能使用deviceorientation事件) 编辑:这是我的当前代码: function addUserLocation() { myLocationMarker = new google.maps.Marker({ clickable : false, icon : new google.
function addUserLocation() {
myLocationMarker = new google.maps.Marker({
clickable : false,
icon : new google.maps.MarkerImage('http://maps.gstatic.com/mapfiles/mobile/mobileimgs2.png', new google.maps.Size(22, 22), new google.maps.Point(0, 18), new google.maps.Point(11, 11)),
shadow : null,
zIndex : 999,
title : 'me',
map : map
});
enableWatchPosition();
}
function enableWatchPosition() {
if (navigator.geolocation) {
watchPositionId = navigator.geolocation.watchPosition(locateByBrowser, handleErrorGettingLocation, {
timeout : 30000,
enableHighAccuracy : true,
maximumAge : 1000
});
}
}
function locateByBrowser(location) {
var currentLocation = new google.maps.LatLng(location.coords.latitude, location.coords.longitude);
myLocationMarker.setPosition(currentLocation);
}
当前位置标记只是一个蓝点。我想添加一个箭头,显示用户进入的方向,就像谷歌地图移动应用程序上显示的那样
我考虑在用户移动手机时使用deviceorientation事件获取alpha值,然后按alpha值旋转箭头图像,如下所述:
我只是觉得我可能不是第一个使用google maps js api v3添加这些内容的人,所以可能有人有一个工作示例,所以我最终使用了这个解决方案,效果非常好:
1) 将我的位置标记的图标更改为符号(svg路径表示法),而不是图像。
2) 向deviceorientation事件添加了侦听器,该事件会更改符号的旋转 我刚刚更改了addUserLocation函数并添加了enableOrientionArrow函数,该函数完成了所有工作。
代码更改为:
function addUserLocation() {
myLocationMarker = new google.maps.Marker({
clickable : false,
icon: {
path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW,
strokeColor : '#3333FF',
strokeWeight : 5,
scale: 2.5
},
shadow : null,
zIndex : 999,
title : genProps.pMyLocationTitle,
map : map
});
enableWatchPosition();
enableOrientationArrow();
}
function enableOrientationArrow() {
if (window.DeviceOrientationEvent) {
window.addEventListener('deviceorientation', function(event) {
var alpha = null;
//Check for iOS property
if (event.webkitCompassHeading) {
alpha = event.webkitCompassHeading;
}
//non iOS
else {
alpha = event.alpha;
}
var locationIcon = myLocationMarker.get('icon');
locationIcon.rotation = 360 - alpha;
myLocationMarker.set('icon', locationIcon);
}, false);
}
}
你的代码看起来像什么?你是用什么格式获得定向的?您要使用的箭头是什么样子的?编辑了包含详细信息的问题。谢谢