Javascript 传单边界无效
因此,我试图将传单映射上的边界调整到所需的geoJson特性。首先,我从navigator getCurrentPosition()方法返回纬度和经度,以使用反向地理编码并获取国家名称。其次,国家名称用于从我的服务器上的geoJson文件中提取geoJson特性。然后返回的特性用于绘制多边形和边界,并且在apache上一切正常。当我在我的托管服务上上传代码时,我得到一个错误,即边界无效。我尝试过几种方法,但都没有成功 知道我做错了什么吗?和托管服务有关吗Javascript 传单边界无效,javascript,geolocation,leaflet,Javascript,Geolocation,Leaflet,因此,我试图将传单映射上的边界调整到所需的geoJson特性。首先,我从navigator getCurrentPosition()方法返回纬度和经度,以使用反向地理编码并获取国家名称。其次,国家名称用于从我的服务器上的geoJson文件中提取geoJson特性。然后返回的特性用于绘制多边形和边界,并且在apache上一切正常。当我在我的托管服务上上传代码时,我得到一个错误,即边界无效。我尝试过几种方法,但都没有成功 知道我做错了什么吗?和托管服务有关吗 // get current posit
// get current position
navigator.geolocation.getCurrentPosition(position => {
let lat = position.coords.latitude;
let lng = position.coords.longitude
L.marker([lat, lng]).addTo(mymap);
// get current country
$.post('php/reverseGeo.php', {
lat: lat,
lng: lng
}, response => {
let name = JSON.parse(response)
let country = name['address']['country']
$.post('php/countryList.php', {
countryName: country
}, result => {
let decoded = JSON.parse(result)
let border = L.geoJSON(decoded).addTo(mymap)
console.log(border.getBounds())
mymap.fitBounds(border.getBounds())
$('#element1').slideDown()
...
当我将border.getBounds()记录到控制台时,它不返回任何内容。在apache上,它返回正确的对象
PHP例程筛选出特定功能:
<?php
$content = file_get_contents('../vendors/countries/countries_large.geo.json');
$decoded = json_decode($content, true);
$info = '';
$name = $_REQUEST['countryName'];
foreach ($decoded['features'] as $feature) {
if ($feature['properties']['ADMIN'] == $name) {
$info = $feature;
break;
} else {
$info = 'Not supported';
}
}
echo json_encode($info);
在“开发人员工具”的“网络”选项卡中检查请求的响应后,问题是在php代码中打开的文件不在服务器上。这主要是url或php权限的问题。查看开发人员工具中的“网络”选项卡,看看php/reverseGeo.php
是否已解决dphp/reverse Geo.php状态代码-200 php/countryList.php状态代码-200hmm这看起来不错,调用的响应是什么?countryList发送的是一个空对象,而不是apache上的我的geoJson功能,相同的代码发送回该功能。这让我迷路了。“加载响应失败”现在我们知道问题是您没有得到响应。请你,然后我们看看php是否有问题。php代码是你发布的代码吗