Advertisement
Guest User

Untitled

a guest
Jul 10th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.34 KB | None | 0 0
  1. class PFT(models.Model):
  2.  
  3. species=models.CharField(max_length=50)
  4. geom = models.PointField(srid=4326)
  5. objects=models.GeoManager()
  6. def __str__(self):
  7. return '%s %s %s' % (self.species, self.geom.x, self.geom.y)
  8.  
  9. def geojson_provinces(request):
  10. conn = psycopg2.connect(dbname="geodjango",host='localhost',user='postgres', password='postgres', port=5433)
  11. dict_cur = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
  12. cur=conn.cursor()
  13. res = dict_cur.execute("SELECT ST_AsGeoJson(geom) AS json FROM pft_pft LIMIT 10;")
  14.  
  15. points=dict_cur.fetchall()
  16.  
  17. json_res = []
  18. for row in points:
  19. json_obj = row['json']
  20. json_res.append(json_obj)
  21. print(json)
  22. #json = simplejson.dumps(data)
  23. dict_cur.close()
  24. return render_to_response('map.html',
  25. {'json_res': json_res},
  26. context_instance=RequestContext(request))
  27.  
  28. url(r'^geojson/$', geojson_provinces, name='geojson_provinces'),
  29.  
  30. <script>
  31.  
  32. var map = new ol.Map({
  33. layers: [
  34. new ol.layer.Tile({
  35. source: new ol.source.OSM()
  36. })
  37. ],
  38. target: 'map',
  39. view: new ol.View({
  40. center: [0, 0],
  41. zoom: 2
  42. })
  43. });
  44.  
  45. var vectorSourceJsonp = new ol.source.Vector({
  46. format: new ol.format.GeoJSON(),
  47. loader: function(extent, resolution, projection) {
  48.  
  49.  
  50. $.ajax({
  51. url: "{% url 'geojson_provinces' %}",
  52. dataType: 'jsonp'
  53. });
  54. },
  55. strategy: ol.loadingstrategy.createTile(new ol.tilegrid.XYZ({
  56. maxZoom: 19
  57. })),
  58. projection: 'EPSG:4326'
  59. });
  60. // Executed when data is loaded by the $.ajax method.
  61. var loadFeatures = function(response) {
  62. vectorSourceJsonp.addFeatures(vectorSourceJsonp.readFeatures(response));
  63. };
  64. // Vector layer
  65. var vectorLayerJsonp = new ol.layer.Vector({
  66. source: vectorSourceJsonp,
  67. style: new ol.style.Style({
  68. stroke: new ol.style.Stroke({
  69. color: 'green',
  70. width: 2
  71. })
  72. })
  73. });
  74. var mapJsonp = new ol.Map({
  75. target: 'mapJsonp',
  76. renderer: 'canvas',
  77. layers: [osmLayer, vectorLayerJsonp],
  78. view: new ol.View({
  79. center: [-75.923853, 45.428736],
  80. maxZoom: 19,
  81. zoom: 11
  82. })
  83. });
  84.  
  85. </script>
  86.  
  87. from django.core.serializers import serialize
  88. from myapp.models import PFT
  89.  
  90. def geojson_provinces(request):
  91. first10_serialized = serialize(
  92. 'geojson',
  93. PFT.objects.all()[:10],
  94. fields=('species', ),
  95. )
  96. return render_to_response(
  97. 'map.html',
  98. {'json_res': first10_serialized},
  99. context_instance=RequestContext(request)
  100. )
  101.  
  102. var obj = JSON.parse(json);
  103.  
  104. var loadFeatures = function(response) {
  105. vectorSourceJsonp.addFeatures(vectorSourceJsonp.readFeatures(response));
  106. };
  107.  
  108. var loadFeatures = function(response) {
  109. vectorSourceJsonp.addFeatures(vectorSourceJsonp.readFeatures(JSON.parse(response)));
  110. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement