javascript - 如何将谷歌地图API中创建的标记拖动到特定位置?

标签 javascript google-maps google-maps-markers

在我的网站上,我集成了谷歌地图 API 并设置了标记,但现在希望实现将标记拖动到更具体/精确位置的功能。

我复制了下面的代码给大家看, map 功能正常,但无法拖动光标。

尝试将其添加到 jsfiddle,但不确定如何使用它 http://jsfiddle.net/TJ94t/

始终感谢帮助。

//<![CDATA[
/*************************************************
 * Created with GoogleMapAPI3.0beta
 * Author: Brad Wedell <brad AT mycnl DOT com>
 * Link http://code.google.com/p/phpgooglemapapiv3/
 * Copyright 2010 Brad Wedell
 * Original Author: Monte Ohrt <monte AT ohrt DOT com>
 * Original Copyright 2005-2006 New Digital Group
 * Originial Link http://www.phpinsider.com/php/code/GoogleMapAPI/
 *************************************************/

                var markersmap  = [];

                    var sidebar_htmlmap  = '';
                    var marker_htmlmap  = [];

                var to_htmlsmap  = [];
                var from_htmlsmap  = [];
            var mapmap = null;
function onLoadmap() {
var mapObjmap = document.getElementById("map");
if (mapObjmap != 'undefined' && mapObjmap != null) {

                var mapOptionsmap = {
                    zoom: 16,
                    mapTypeId: google.maps.MapTypeId.HYBRID,
                    mapTypeControl: true,
                    mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DEFAULT}
                };

                    mapOptionsmap.center = new google.maps.LatLng(
                        36.488804,
                        -4.998799
                    );

                mapmap = new google.maps.Map(mapObjmap,mapOptionsmap);
            var point = new google.maps.LatLng(36.4888036,-4.9987986);
markersmap.push(createMarker(mapmap, point,"Marker Title","Marker Description", '', '', "sidebar_map", '' ));


              }
}

           function createMarker(map, point, title, html, icon, icon_shadow, sidebar_id, openers){
                var marker_options = {
                    position: point,
                    map: map,
                    title: title};  
                if(icon!=''){marker_options.icon = icon;}
                if(icon_shadow!=''){marker_options.icon_shadow = icon_shadow;}
                //create marker
                var new_marker = new google.maps.Marker(marker_options);
                if(html!=''){

                    var infowindow = new google.maps.InfoWindow({content: html});
                    google.maps.event.addListener(new_marker, 'click', function() {
                      infowindow.open(map,new_marker);
                    });
                    if(openers != ''&&!isEmpty(openers)){
                       for(var i in openers){
                         var opener = document.getElementById(openers[i]);
                         opener.onclick = function(){infowindow.open(map,new_marker); return false};
                       }
                    }

                    if(sidebar_id != ''){
                        var sidebar = document.getElementById(sidebar_id);
                        if(sidebar!=null && sidebar!=undefined && title!=null && title!=''){
                            var newlink = document.createElement('a');

                            newlink.onclick=function(){infowindow.open(map,new_marker); return false};

                            newlink.innerHTML = title;
                            sidebar.appendChild(newlink);
                        }
                    }
                }
                return new_marker;  
            }
        function isArray(a) {return isObject(a) && a.constructor == Array;}
function isObject(a) {return (a && typeof a == 'object') || isFunction(a);}
function isFunction(a) {return typeof a == 'function';}
function isEmpty(obj) { for(var i in obj) { return false; } return true; }
//]]>
</script>
<!--Google map-->

最佳答案

在创建marker_options时添加draggable属性并将其值设置为true。

var marker_options = {position: point, map: map, title: title, draggable: true};

有关marker_options(以及可以订阅的拖动事件)的更多信息可以在 Google's Map Api documentation. 中找到。

关于javascript - 如何将谷歌地图API中创建的标记拖动到特定位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8804210/

相关文章:

java - 设置 setMylocationenable(true) 时无法获取谷歌地图 fragment 中的 Activity 上下文

ios - 更新给定键的特定点击 marker.userdata 值

javascript - 当我尝试向标记 django 添加多个单击监听器时,initMap 不是一个函数

javascript - 如果我分块循环遍历一个大数组,它会提高性能吗?

php - 如何通过 Google map 地理定位或其他方式获取以某点为中心的 X 英里半径的纬度/经度坐标?

javascript - 类似于 Groupon 的位置搜索

javascript - 使用 gmaps api 中的参数调用函数 initmap

javascript - 如何让LI innerText有缩进

javascript - Firebase 身份验证。更新所有项目文件

javascript - Twitter Bootstrap Carousel 不会自动启动