#!/usr/bin/env python# -*- coding: utf-8 -*-# @Date : 2018-10-07 15:49:37# @Author : Sheldon (thisisscret@qq.com)# @Blog : 谢耳朵的派森笔记# @Link : https://www.cnblogs.com/shld/# @Version : 0.0.1def isinpolygon(point,vertex_lst:list, contain_boundary=True): #检测点是否位于区域外接矩形内 lngaxis, lataxis = zip(*vertex_lst) minlng, maxlng = min(lngaxis),max(lngaxis) minlat, maxlat = min(lataxis),max(lataxis) lng, lat = point if contain_boundary: isin = (minlng<=lng<=maxlng) & (minlat<=lat<=maxlat) else: isin = (minlnglat and elat>lat: #线段在射线上边 return False if slat lat: #交点为下端点,对应spoint return False if elat==lat and slat>lat: #交点为下端点,对应epoint return False if slng