代码之家  ›  专栏  ›  技术社区  ›  MistyD Harish Kumar Kailas

是否有允许我从点域获取国家的Django包?

  •  2
  • MistyD Harish Kumar Kailas  · 技术社区  · 7 年前

    我目前正在使用geodjango,我有一个点域。外面有没有一个Django图书馆可以让我从一个点域中获得国家。如果它也给了我一个邮政编码,那就加上点。我不想支付外部服务的费用。免费的东西。在这种情况下,姜戈国家会提供帮助吗?

    1 回复  |  直到 7 年前
        1
  •  0
  •   John Moutafis Milani Igor    7 年前

    在我所知的范围内,没有可以通过坐标搜索国家的Django模块。

    您可以做的是创建一个模型来存储一个包含国家及其相应几何图形的数据集(您可以从这个答案中找到您需要的内容: https://gis.stackexchange.com/questions/495/seeking-administrative-boundaries-for-various-countries )然后针对那个模型查询您的观点。

    • models.py :

      class Country(model.Model):
          name = models.CharField(max_length=100)
          geom = model.PolygonField() # or what the dataset needs.
          zip_code = model.CharField(max_length=5)
          ...
      
    • 查询(假设您的观点是 Point 名为的对象 my_point ):

      try:
          country = Country.objects.get(geom__contains=my_point)
      except Country.DoesNotExist:
          print('No country for old men... eerrr given point.')
      
      print(country.name, country.zip_code, ...)
      


    PS: 您会发现此文档非常有用: https://docs.djangoproject.com/en/2.1/ref/contrib/gis/geoquerysets/