Google maps api 3 谷歌地图js API V3:在“地图”上显示方向箭头;“我的位置标记”;

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.

使用GoogleMapsJSAPIv3,我很容易添加了一个标记来显示用户的位置(基于navigator.geolocation)

如何添加指示用户移动方向的箭头(可能使用deviceorientation事件)

编辑:这是我的当前代码:

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

你的代码看起来像什么?你是用什么格式获得定向的?您要使用的箭头是什么样子的?编辑了包含详细信息的问题。谢谢