Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.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_Geolocation_Leaflet - Fatal编程技术网

Javascript 传单边界无效

Javascript 传单边界无效,javascript,geolocation,leaflet,Javascript,Geolocation,Leaflet,因此,我试图将传单映射上的边界调整到所需的geoJson特性。首先,我从navigator getCurrentPosition()方法返回纬度和经度,以使用反向地理编码并获取国家名称。其次,国家名称用于从我的服务器上的geoJson文件中提取geoJson特性。然后返回的特性用于绘制多边形和边界,并且在apache上一切正常。当我在我的托管服务上上传代码时,我得到一个错误,即边界无效。我尝试过几种方法,但都没有成功 知道我做错了什么吗?和托管服务有关吗 // get current posit

因此,我试图将传单映射上的边界调整到所需的geoJson特性。首先,我从navigator getCurrentPosition()方法返回纬度和经度,以使用反向地理编码并获取国家名称。其次,国家名称用于从我的服务器上的geoJson文件中提取geoJson特性。然后返回的特性用于绘制多边形和边界,并且在apache上一切正常。当我在我的托管服务上上传代码时,我得到一个错误,即边界无效。我尝试过几种方法,但都没有成功

知道我做错了什么吗?和托管服务有关吗

// 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代码是你发布的代码吗