Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 允许用户使用输入的半径在地图上绘制圆_Javascript_Jquery_Html_Jquery Mobile_Google Maps Api 3 - Fatal编程技术网

Javascript 允许用户使用输入的半径在地图上绘制圆

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

我想到的是一个输入框,用户首先输入半径。然后在它旁边的按钮上添加一个可拖动的圆圈到地图上

我在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(),我就无法让函数工作

是否确定
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,这是有效的。