我想到的是用户首先输入半径的输入框。然后在它旁边的一个按钮上将一个可拖动的圆圈添加到地图上。
我已经DrawingMode
在 Google Map V3 中尝试过。它忽略了该半径设置。
var map;
var pos;
function initialize() {
var mapOptions = {
zoom: 16,
scaleControl: false,
zoomControl: false,
rotateControl: false,
streetViewControl: false,
panControl:false,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
function setCurrentLocation(){
navigator.geolocation.getCurrentPosition(function(position) {
pos = new google.maps.LatLng(position.coords.latitude,
position.coords.longitude);
map.setCenter(pos);
})}
setCurrentLocation();
function drawCircle(){
var draw_circle = new google.maps.Circle({
center: pos,
radius: 200,
strokeColor: "#FF0000",
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: "#FF0000",
fillOpacity: 0.35,
map: map})}
$( "#addcircle" ).click(function() {
drawCircle();
});
我已经尝试使用上述方法。但似乎该变量在函数pos
中无效。drawCircle
$( "#addcircle" ).click(function() {
drawCircle();
});
这部分与一个特定的按钮有关,一旦单击它就应该添加圆圈。
function setCurrentLocation(){
navigator.geolocation.getCurrentPosition(function(position) {
pos = new google.maps.LatLng(position.coords.latitude,
position.coords.longitude);
map.setCenter(pos);
function drawCircle(){
var draw_circle = new google.maps.Circle({
center: pos,
radius: 200,
strokeColor: "#FF0000",
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: "#FF0000",
fillOpacity: 0.35,
map: map})}
;
drawCircle();
})}
如果我更改代码来测试pos
,这有效。实际发送到圆的pos
坐标是有效的。
但是一旦我放置drawCircle();
了按钮单击处理程序,我就无法让该功能工作。