Django django.contrib.gis.db MultiPolygonField提取点

时间:2016-08-08 14:57:27

标签: django geodjango

  1. 我没有找到任何关于geo dgango的文档,其中包含有关字段的详细信息。只有这个https://docs.djangoproject.com/en/1.9/ref/contrib/gis/model-api/#django.contrib.gis.db.models.MultiPolygonField,但正如你所看到的那样,它并没有告诉我们这些领域内的内容以及如何获得它...... 我在哪里可以找到geodjango领域的深层视图,例如MultiPolygonField?

  2. 我试图提取MultiPolygonField中的所有点。我试过了:

    mpoly = models.MultiPolygonField(srid=4326, null=False, blank=False)
    
    def get_tooltip_title(self):
        result = "Polygon: [["
        for poly in self.mpoly.choices:
            for point in poly.coordinates:
                result += "("
                result += str(point.x)
                result += ","
                result += str(point.y)
                result += "),"
            result += "],"
    
        result += "]"
        return result
    

    但是没有"选择"在该领域,我没有找到任何关于该领域的良好文档。那么如何获得MultiPolygonField的点?

2 个答案:

答案 0 :(得分:1)

好的,这太愚蠢了。没有好的文档?!

我在2009年http://www.paolocorti.net/2009/04/01/a-day-with-geodjango/发布了某些人的解决方案。它就像:

<subsystem xmlns="urn:jboss:domain:logging:1.1">
            <console-handler name="CONSOLE">
                ...
            </console-handler>
            <periodic-rotating-file-handler name="FILE">
                ...
            </periodic-rotating-file-handler>
            <periodic-rotating-file-handler name="FILE_SQL" autoflush="true">
                <level name="TRACE"/>
                <formatter>
                    <pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss} %-5p [%c] (%t) %s%E%n"/>
                </formatter>
                <file relative-to="jboss.server.log.dir" path="sql_hib.log"/>
                <suffix value=".yyyy-MM-dd"/>
                <append value="true"/>
            </periodic-rotating-file-handler>


            <logger category="org.hibernate.sql">
                <level name="TRACE"/>
                <handlers>
                    <handler name="FILE_SQL"/>
                </handlers>
            </logger>
            <logger category="org.hibernate">
                <level name="TRACE"/>
                <handlers>
                    <handler name="FILE_SQL"/>
                </handlers>
            </logger>
            <root-logger>
                <level name="TRACE"/>
                <handlers>
                    <handler name="CONSOLE"/>
                    <handler name="FILE"/>
                </handlers>
            </root-logger>
        </subsystem>

答案 1 :(得分:1)

虽然geodjango MultiPolygon没有很好地记录,但mysql multipolygon

  

MultiPolygon是由Polygon元素组成的MultiSurface对象。

     

MultiPolygon示例

     

在区域地图上,MultiPolygon可以代表湖泊系统。

postgis MultiPolygon也有很好的记录,有一些视觉示例。

基本上,MultiPolygon是可以触摸但不相交的元素的集合。