2016-08-18 17 views
1

実行中のDjangoアプリケーションには、GeoJSONデータがdjango-geojson経由でモデルの1つに格納されています。管理者インターフェイスでは、このフィールドはdjango-leafletで編集できます。アプリケーションをローカルで./manage.py runserverで実行すると、インターフェイスはうまく動作し、ページは次のようになります。私はうまくビルドをHerokuの、への展開、および管理インターフェイスに同じ場所のインスタンスを開くとHeroku上にGDALがありません

Working example on localhost

しかし、青いマーカーが地図上のどこにもありませんが、マップのロード通常、および私は私に届け、このエラーが出る:

Error creating geometry from value '{ 

"coordinates":[ 
    "-105.2449000", 
    "40.0474000" 
], 
"type":"Point" 

}' (Initializing geometry from JSON input requires GDAL.) 

私はちょうど私のmodels.py

from djgeojson.fields import PointField 
from django.db import models 

class Location(models.Model): 
    """ 
    A model subclass for recording geographic data. 
    """ 

    service_id = models.CharField(max_length=255, blank=True, null=True) 
    name = models.CharField(max_length=255, blank=True, null=True) 
    geom = PointField() # GeoJSON (remember, coordinates: [long, lat]) 

    def __str__(self): 
     return self.name 

のThでシンプルなポイントデータを記録しています私はgeoJson、Leaflet、Herokuを使って初めてです。私はいくつかの依存関係を欠いている、私は無視しているいくつかのHeroku構成がありますか?ここに私のrequirements.txtがあります。

dj-database-url==0.4.1 
Django==1.10 
django-filter==0.13.0 
django-geojson==2.9.0 
django-leaflet==0.18.1 
gunicorn==19.6.0 
httplib2==0.9.2 
jsonfield==1.0.3 
oauth2==1.9.0.post1 
oauthlib==1.1.2 
psycopg2==2.6.2 
PyJWT==1.4.1 
python-openid==2.2.5 
requests==2.10.0 
requests-oauthlib==0.6.2 
six==1.10.0 
wheel==0.24.0 
whitenoise==3.2 

答えて

2

GDALはPythonの依存関係ではなく、本番環境(Heroku)にインストールする必要がある別のフレームワークです。

これを行う1つの方法は、heroku-geo-buildpackのような別のビルドパックを使用することです。 Herokuはinstructions on how to add multiple buildpacksです。ここではPythonとGDALです。

一度インストールされると、heroku-geo-buildpackはGDALをテストする次の方法がDjangoアプリにインストールされていることを示しています。あなたのHeroku Pythonコンソールから:

>>> from django.contrib.gis import gdal 
>>> gdal.HAS_GDAL 
True 

あなたは良いと思います。

関連する問題