Javascript 允许用户使用输入的半径在地图上绘制圆
我想到的是一个输入框,用户首先输入半径。然后在它旁边的按钮上添加一个可拖动的圆圈到地图上 我在Google Map V3中尝试了Javascript 允许用户使用输入的半径在地图上绘制圆,javascript,jquery,html,jquery-mobile,google-maps-api-3,Javascript,Jquery,Html,Jquery Mobile,Google Maps Api 3,我想到的是一个输入框,用户首先输入半径。然后在它旁边的按钮上添加一个可拖动的圆圈到地图上 我在Google Map V3中尝试了绘图模式。它忽略了半径设置 var map; var pos; function initialize() { var mapOptions = { zoom: 16, scaleControl: false, zoomControl: false, rotateControl: false, streetViewContr
绘图模式。它忽略了半径设置
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(),我就无法让函数工作使用按钮单击处理程序进行编码>。是否确定navigator.geolocation.getCurrentPosition
我的意思是,为什么不检查setCurrentLocation()中的console.log(position.coords),确保将正确的对象“pos”发送到圆中
或者简单地将直接定位对象分配到地图中:new google.maps.LatLng(41.878113,-87.629798)确保一切正常请发布您尝试过但不起作用的代码。或者可能会因为缺少代码而看到抱歉。'坐标{speed:null,heading:null,altitudeAccuracy:null,accurity:70,altitude:null…}精度:70高度:空高度准确度:空航向:空纬度:1.438301099999999经度:103.7976525999999速度:空原型:坐标构造函数:函数坐标(){[本机代码]}原型:对象'这是我从控制台日志中得到的结果。在pos机上发送这些东西对吗?或者如何更改它,使其只发送坐标?函数setCurrentLocation(){navigator.geolocation.getCurrentPosition(函数(位置){pos=new google.maps.LatLng(position.coords.latitude,position.coords.longitude);map.setCenter(pos);函数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,这是有效的。