मुझे एडमिन ऐप के साथ openlayers और OpenStreetMaps का उपयोग करके geodjango चल रहा है।geodjango में OpenStreetMap के साथ openlayers का उपयोग कर डेटा प्रदर्शित करने के लिए कैसे?
अब मैं डेटा प्रदर्शित करने के लिए कुछ विचार लिखना चाहता हूं। असल में, मैं सिर्फ मानचित्र में बिंदुओं (व्यवस्थापक में देखा गया) की एक सूची जोड़ना चाहता हूं।
जिओडोज़गो विशेषopenlayers.js फ़ाइल का उपयोग व्यवस्थापक में जादू करने के लिए प्रतीत होता है। क्या इसके साथ इंटरफेस करने का कोई अच्छा तरीका है?
व्यवस्थापक में देखी गई खुली सड़क मानचित्र विंडो पर geodjango डेटा प्रदर्शित करने के लिए मैं एक दृश्य/टेम्पलेट कैसे लिख सकता हूं?
फिलहाल, मैं openlayers.js फ़ाइल में खोद रहा हूं और एपीआई 'आसान' समाधान की तलाश में है। (मेरे पास जेएस अनुभव नहीं है इसलिए इसमें कुछ समय लग रहा है।)
वर्तमान तरीके से मैं इसे करने के लिए देख सकता हूं, टेम्पलेट के रूप में निम्न को जोड़ता है, और बिंदुओं को प्रदर्शित करने के लिए आवश्यक कोड जोड़ने के लिए django का उपयोग करता है। (उदाहरण के here के आधार पर)
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Draw Feature Example</title>
<script src="http://www.openlayers.org/api/OpenLayers.js"></script>
<script type="text/javascript">
var map;
function init(){
map = new OpenLayers.Map('map');
var layer = new OpenLayers.Layer.WMS("OpenLayers WMS",
"http://labs.metacarta.com/wms/vmap0", {layers: 'basic'});
map.addLayer(layer);
/*
* Layer style
*/
// we want opaque external graphics and non-opaque internal graphics
var layer_style = OpenLayers.Util.extend({}, OpenLayers.Feature.Vector.style['default']);
layer_style.fillOpacity = 0.2;
layer_style.graphicOpacity = 1;
/*
* Blue style
*/
var style_blue = OpenLayers.Util.extend({}, layer_style);
style_blue.strokeColor = "blue";
style_blue.fillColor = "blue";
style_blue.graphicName = "star";
style_blue.pointRadius = 10;
style_blue.strokeWidth = 3;
style_blue.rotation = 45;
style_blue.strokeLinecap = "butt";
var vectorLayer = new OpenLayers.Layer.Vector("Simple Geometry", {style: layer_style});
// create a point feature
var point = new OpenLayers.Geometry.Point(-111.04, 45.68);
var pointFeature = new OpenLayers.Feature.Vector(point,null,style_blue);
// Add additional points/features here via django
map.addLayer(vectorLayer);
map.setCenter(new OpenLayers.LonLat(point.x, point.y), 5);
vectorLayer.addFeatures([pointFeature]);
}
</script>
</head>
<body onload="init()">
<div id="map" class="smallmap"></div>
</body>
</html>
इस कि यह कैसे हुआ है, या वहाँ एक बेहतर तरीका है?
मुझे लगता है कि सबसे अच्छा तरीका एक Django राय यह है कि आवश्यक डेटा के लिए आवश्यक JSON ऑब्जेक्ट रिटर्न तैयार करना है। – monkut