城市边界内的地图搜索

时间:2014-05-23 11:23:54

标签: python google-maps google-maps-api-3 polygon

我正在使用Google Places API搜索特定区域内的餐馆。

如何定义给定区域?例如我想在马哈拉施特拉邦的孟买区搜索。现在这是约。 5000平方公里,我无法一次性获得谷歌的所有结果。

因此,对于增量搜索,解决方案是通过增加给定起始点的纬度和长值来继续搜索。

示例代码 -

lat_NW = 53.4017872352
lng_NW = 5.954233125
lat_SE = 51.9766032969
lng_SE = 10.032130575
lat_curr = lat_NW
lng_curr = lng_NW
total_calls = 0

lat_incr = -.29
lng_incr = .29

while lng_curr<lng_SE:
    lng_curr = lng_NW
        while lat_curr > lng_SE:
        curr_location = str(lat_curr) + "," + str(lng_curr)
         print curr_location
         url='https://maps.googleapis.com/maps/api/place/search/json?location=' + curr_location + '&sensor=false&key=' + GOOGLE_API_KEY + '&radius=20000&types=restaurant&name=mcdonalds'
            response = urllib2.urlopen(url)
            result = response.read()
            d = simplejson.loads(result)
            print d
            lng_curr += lng_incr
        lat_curr += lat_incr

PS(我在https://stackoverflow.com/处获得了此示例代码。)

问题 - 但问题是假设该区域是矩形的。有没有办法我们可以

  1. 确定城市的纬度,长边界 - 例如马萨诸塞州波士顿谷歌地图本身?显然,这将是具有一系列值的多边形,而不仅仅是一个矩形的4个点
  2. 如果是,则可以使用固定增量从中心到最大半径,从多边形的中心点逐步进行搜索,然后拉出所有信息......
  3. 我查看了Google文档中的google.maps.LatLngBounds类,不幸的是(据我所知),它讨论了导致矩形的NE和SW角落。

    我在这个论坛的其他帖子上搜索了这个,我得到的是 -

    http://www.maptechnica.com/us-city-area-map/city/Boston/state/MA/cityid/2507000
    City:   Boston, Massachusetts
    Latitude/Longitude: 42.31435000000000, -70.96997850000000
    Lat/Lon Northwest:  42.40082000000000, -71.19115500000000
    Lat/Lon Southeast:  42.22788000000000, -70.74880200000000 
    ----   Rectangle Again
    

    现在似乎没有城市及其多边形边界的开源数据库。

    感谢您的帮助。 和Manish

0 个答案:

没有答案