标签:leaflet coordinates javascript php jquery
我试图在我的传单地图上显示一个标记.这给我以下错误:TypeError:t为空
使用Google Maps API来获取坐标的PHP代码:
<?php
if (isset($_POST["checkAddress"])) { //Checks if action value exists
$checkAddress = $_POST["checkAddress"];
$plus = str_replace(" ", "+", $checkAddress);
$json = file_get_contents('https://maps.googleapis.com/maps/api/geocode/json?address=' . $plus . '&key=KEY');
$obj = json_decode($json);
$mapLat = $obj->results[0]->geometry->location->lat;
$mapLng = $obj->results[0]->geometry->location->lng;
$coords = ('' . $mapLat . ', ' . $mapLng . '');
echo $coords;
}
?>
运行PHP脚本并应在Leaflet地图上显示坐标的jQuery:
$(document).ready(function() {
$("#button").click(function(){
$.ajax({
url: "geo.php",
method: "POST",
data: {
checkAddress: $("#largetxt").val()
},
success: function(response){
console.log(response);
var marker = L.marker([response]).addTo(map);
}
});
});
});
解决方法:
哦,又是你.
您收到一个字符串作为响应.
L.marker期望[lat,lng],但是您给它[[lat,lng“]一个字符串而不是两个浮点数.
要在JavaScript中解决此问题,请执行以下操作:
success: function(response){
var coordinates = response.split(", "); //create an array containing lat and lng as strings
coordinates[0] = parseFloat(coordinates[0]); //convert lat string to number
coordinates[1] = parseFloat(coordinates[1]); //convert lng string to number
var marker = L.marker(coordinates).addTo(map);
}
标签:leaflet,coordinates,javascript,php,jquery 来源: https://codeday.me/bug/20191026/1934259.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。