我在使用变量为 <script>
$(document).ready(function () {
$('#btnGetData').click(function () {
var requestUrl = '@Url.Action("GetSomeData", "Home")';
$.get(requestUrl)
.done(function (responsedata) {
console.log("success");
$("#partialViewContent").html(responsedata);
$('#myModal').modal('show')
})
.fail(function () {
alert("error");
})
.always(function () {
console.log("finished");
});
})
});
</script>
的Leaflet地图上创建新圆时遇到麻烦。
我有一个包含半径输入的表格,以及一个包含一些位置的选择框,其选项如下所示:
latlng
单击“保存”按钮时,将运行以下代码:
<option value="52.10953576, -0.498735399999987">Place Name</option>
我已经使用console.log进行了一些调试,并且可以看到latlng变量确实包含来自选择框的正确信息。
但是,我得到
未捕获的TypeError:无法读取null的属性“ lng”
答案 0 :(得分:1)
从var latlng = e.options[e.selectedIndex].value;
获得的值是一个字符串,而不是一对坐标。
Split此字符串可将您的坐标保存在数组中,将值转换为数字,然后将其提供给L.circle
。例如,
var radiusinmeters = cr * 1609.344;
var latlng_string = e.options[e.selectedIndex].value;
var latlng_array = latlng_string
.split(/,\s*/) // split the value
.map(function(v) { return +v; }); // cast to numbers
var circle = L.circle(latlng_array, radiusnmeters).addTo(map);
答案 1 :(得分:0)
在您的代码中,变量latlng是一个字符串,L.circle接受一个LatLng对象,即其中之一:
L.latLng(<Number> latitude, <Number> longitude)
L.latLng(<Array> coords) // [Number, Number]
L.latLng(<Object> coords) // {lat: Number, lng: Number}
您的latlng变量为[“ 52.10953576,-0.498735399999987”] 您必须解析字符串以获取正确的值
中的更多信息