Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.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
Python Shapely无法精确找到多边形内的点_Python_Google Maps_Map Projections_Shapely - Fatal编程技术网

Python Shapely无法精确找到多边形内的点

Python Shapely无法精确找到多边形内的点,python,google-maps,map-projections,shapely,Python,Google Maps,Map Projections,Shapely,我有几个点,我想检查它们是否包含在多边形上。多边形和点由纬度和经度表示 下面是的代码,用于重现我的场景和Google Maps打印屏幕上的多边形,多边形内外的点按Shapely显示 import pyproj from shapely.geometry import Polygon, Point from shapely.ops import transform from functools import partial import numpy as np polygon_array = [

我有几个点,我想检查它们是否包含在多边形上。多边形和点由纬度和经度表示

下面是的代码,用于重现我的场景和Google Maps打印屏幕上的多边形,多边形内外的点按Shapely显示

import pyproj
from shapely.geometry import Polygon, Point
from shapely.ops import transform
from functools import partial
import numpy as np

polygon_array = [(1.4666748046875, 49.088257784724675),
                 (1.4447021484375, 47.42808726171425),
                 (2.889404296875, 47.42808726171425),
                 (2.8729248046875, 49.08466020484928),
                 (-0.0054931640625, 47.97521412341619),
                 (0.010986328125, 46.18743678432541),
                 (1.4227294921875, 46.1912395780416),
                 (1.4337158203125, 48.02299832104887),
                 (-1.043701171875, 46.65320687122665),
                 (-1.043701171875, 44.6061127451739),
                 (0.0164794921875, 44.5982904898401),
                 (-0.0054931640625, 46.6795944656402)]

simple_polygon = Polygon(polygon_array)
projection = partial(
    pyproj.transform,
    pyproj.Proj(init='epsg:4326'),
    pyproj.Proj('+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs'))
polygon = transform(projection, simple_polygon)

for latitude in np.arange(44.5435052132, 49.131408414, 0.071388739257):
    for longitude in np.arange(-0.999755859375, 2.99926757812, 0.071388739257):
        point = transform(projection, Point(longitude, latitude))
        if polygon.contains(point):
            print "%s, %s" % (latitude, longitude)
以下是多边形在地图上的外观:

以下是多边形“内部”的点(此处表示为标记):

以及“外部”的要点:

这里的问题是,这些点明显远离多边形,在内部或外部。我对这个投影方案不熟悉,所以我可能遗漏了一些东西


提前谢谢你

你的多边形看起来一点也不像你画的那幅画(我只能说)

代码片段:

函数初始化(){
var map=new google.maps.map(
document.getElementById(“地图画布”){
中心:新google.maps.LatLng(37.4419,-122.1419),
缩放:13,
mapTypeId:google.maps.mapTypeId.ROADMAP
});
变量多边形数组=[{
液化天然气:1.4666748046875,
纬度:49.088257784724675
}, {
液化天然气:1.4447021484375,
纬度:47.42808726171425
}, {
液化天然气:2.889404296875,
纬度:47.42808726171425
}, {
液化天然气:2.8729248046875,
纬度:49.08466020484928
}, {
液化天然气:-0.0054931640625,
纬度:47.97521412341619
}, {
液化天然气:0.010986328125,
纬度:46.18743678432541
}, {
液化天然气:1.4227294921875,
纬度:46.1912395780416
}, {
液化天然气:1.4337158203125,
纬度:48.02299832104887
}, {
液化天然气:-1.043701171875,
纬度:46.65320687122665
}, {
液化天然气:-1.043701171875,
纬度:44.6061127451739
}, {
液化天然气:0.0164794921875,
纬度:44.5982904898401
}, {
液化天然气:-0.0054931640625,
纬度:46.6795944656402
}];
对于(var i=0;i
html,
身体,
#地图画布{
身高:100%;
宽度:100%;
边际:0px;
填充:0px
}


您的多边形看起来与您绘制的图片完全不同(我只能说)

代码片段:

函数初始化(){
var map=new google.maps.map(
document.getElementById(“地图画布”){
中心:新google.maps.LatLng(37.4419,-122.1419),
缩放:13,
mapTypeId:google.maps.mapTypeId.ROADMAP
});
变量多边形数组=[{
液化天然气:1.4666748046875,
纬度:49.088257784724675
}, {
液化天然气:1.4447021484375,
纬度:47.42808726171425
}, {
液化天然气:2.889404296875,
纬度:47.42808726171425
}, {
液化天然气:2.8729248046875,
纬度:49.08466020484928
}, {
液化天然气:-0.0054931640625,
纬度:47.97521412341619
}, {
液化天然气:0.010986328125,
纬度:46.18743678432541
}, {
液化天然气:1.4227294921875,
纬度:46.1912395780416
}, {
液化天然气:1.4337158203125,
纬度:48.02299832104887
}, {
液化天然气:-1.043701171875,
纬度:46.65320687122665
}, {
液化天然气:-1.043701171875,
纬度:44.6061127451739
}, {
液化天然气:0.0164794921875,
纬度:44.5982904898401
}, {
液化天然气:-0.0054931640625,
纬度:46.6795944656402
}];
对于(var i=0;i
html,
身体,
#地图画布{
身高:100%;
宽度:100%;
边际:0px;
填充:0px
}


您的多边形看起来与您绘制的图片完全不同(我只能说)@geocodezip,是的!你完全正确!我不知怎么搞砸了多边形路径,把这个放在那里。我不会那样说的。非常感谢你。我建议你把你的评论作为答案,这样我就可以把它标记为“答案”。真是太感谢你了。你的多边形看起来一点也不像你画的那幅画(我只能说)@geocodezip,是的!你完全正确!我不知怎么搞砸了多边形路径,把这个放在那里。我不会那样说的。非常感谢你。我建议你把你的评论作为答案,这样我就可以把它标记为“答案”。非常感谢你。