क्या ओपनलेयर से केएमएल लिखना और सहेजना संभव है? किसी को निर्यात करने का एक उदाहरण पता है?ओपनलेयर आपके मानचित्र पर आधारित केएमएल लिखते हैं और सहेजते हैं
उत्तर
आप के एम एल के लिए एक ही वेक्टर सुविधाओं निर्यात कर सकते हैं।
function GetKMLFromFeatures(features) {
var format = new OpenLayers.Format.KML({
'maxDepth':10,
'extractStyles':true,
'internalProjection': map.baseLayer.projection,
'externalProjection': new OpenLayers.Projection("EPSG:4326")
});
return format.write(features);
}
अद्यतन
आदेश के एम एल स्ट्रिंग डाउनलोड करने के लिए एक KML फ़ाइल के रूप में आपको लगता है कि स्ट्रिंग सर्वर साइड करने के लिए वापस भेजने की जरूरत है तो यह ब्राउज़र के लिए वापस किया जा सकता ब्राउज़र के लिए मजबूर करने में डाउनलोड करने के लिए एक फ़ाइल के रूप में।
आपने यह निर्दिष्ट नहीं किया है कि आप सर्वर-साइड पर किस भाषा/प्लेटफॉर्म/आदि का उपयोग कर रहे हैं, लेकिन मैंने सी # में किया है।
मैंने एक हैंडलर बनाया जो क्वेरीस्ट्रिंग से फ़ाइल नाम और केएमएल को टेक्स्टरेरा फॉर्म से लेता है।
KMLDownload.ashx:
<%@ WebHandler Language="C#" Class="KMLDownload" %>
using System;
using System.Web;
public class KMLDownload : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
HttpResponse response = context.Response;
string kml = context.Request["kml"];
string filename = context.Request.QueryString["filename"];
if (String.IsNullOrEmpty(kml))
{
context.Response.ContentType = "text/plain";
context.Response.Write("{\"error\":\"No files recevied\"}");
}
else
{
if (String.IsNullOrEmpty(filename)){
filename = "Features_KML.kml";
}
// force a download of the kml file.
response.Clear();
response.ContentType = "application/kml";
response.AddHeader("Content-Disposition", "attachment; filename=" + filename);
response.AddHeader("content-legth", kml.Length.ToString());
response.Write(kml.ToString());
response.End();
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
तब मेरे जावास्क्रिप्ट तरफ से मैं बस इस डाउनलोड आरंभ करने के लिए कॉल: आप Openlayers 3 या 4 उपयोग कर रहे हैं
var filename = "NameofKMLfileI_WANT.kml";
var url = "secure/KMLDownload.ashx";
if (filename) {
url += "?filename=" + filename;
}
var input = '<TEXTAREA name="kml">' + kml + '</TEXTAREA>';
//send request
jQuery('<form action="' + url + '" method="post">' + input + '</form>').appendTo('body').submit().remove();
अच्छा। आप केएमएल को संभावित रूप से लिख या सहेज सकते हैं? – user1040259
विशिष्ट बनें। क्या आप डेटाबेस में सहेजना चाहते हैं, फ़ाइल में लिखना चाहते हैं, या उपरोक्त फ़ंक्शन रिटर्न के केएमएल स्ट्रिंग से केएमएल फ़ाइल डाउनलोड करने के लिए ब्राउज़र को मजबूर करना चाहते हैं? – capdragon
आपकी मदद के लिए धन्यवाद। केएमएल के डाउनलोड को शुरू करने के लिए ब्राउज़र को मजबूर करें। – user1040259
यहाँ बचाने के लिए कुछ JQuery कार्रवाई है:
$('#saveKML').click(function() {
var kmlFormat = new OpenLayers.Format.KML();
var newWindow = window.open('',
'KML Export ' + (new Date()).getTime(), "width=300,height=300");
newWindow.document.write('<textarea id="kml" style="width: 100%; height: 100%">' +
kmlFormat.write(features) + '</textarea>');
});
, तो आप पाएंगे कि पिछले (2012) उत्तरों का वाक्यविन्यास अब काम नहीं करता है।
यह करता है:
function GetKMLFromFeatures(features) {
var format = new ol.format.KML();
var kml = format.writeFeatures(features, {featureProjection: 'EPSG:3857'});
return kml;
}
function GetGeoJSONFromFeatures(features) {
var format = new ol.format.GeoJSON();
var geoJSON = format.writeFeatures(features, {featureProjection: 'EPSG:3857'});
return geoJSON;
}
function GetFeaturesFromLayer(layer) {
var source = layer.getSource();
var features = source.getFeatures();
return features;
}
- 1. अपाचे चिड़ियाघर: लिखते हैं
- 2. लगातार डिस्क पर लिखते हैं? अमेज़ॅन ec2
- 3. समवर्ती उसी स्मृति पते पर लिखते हैं
- 4. केएमएल
- 5. ओपनलेयर
- 6. Google मानचित्र केएमएल परत - ईवेंट वापसी पर क्लिक करें ZERO_RESULTS
- 7. ओपनलेयर
- 8. उसी मानचित्र पर केएमएल, पता लुकअप, दिशानिर्देश और 'साझा करें मानचित्र' का उपयोग करें
- 9. ओपनलेयर और कैचिंग ड्रैग इवेंट
- 10. gdb में सेटिंग्स को कैसे सहेजते हैं?
- 11. VsVim सेटिंग्स फ़ाइल को सहेजते हैं
- 12. साथ ही एक वीडियो स्ट्रीम और सहेजते हैं?
- 13. Django: ManyToManyField में डेटा कैसे सहेजते हैं?
- 14. विंडोज पर एसवीएन चलाने के आपके अनुभव क्या हैं?
- 15. जियोसेवर और ओपनलेयर के साथ मर्केटर प्रक्षेपण विश्व मानचित्र
- 16. केएमएल
- 17. क्या ऐसे कार्यक्रम हैं जो नए कार्यक्रम लिखते हैं?
- 18. आप अपना पैकेज दस्तावेज कैसे लिखते हैं?
- 19. आप स्मार्टकार्ड को कैसे लिखते/पढ़ते हैं?
- 20. आप 3 डी गेम कैसे लिखते हैं?
- 21. जावास्क्रिप्ट दस्तावेज़ ओवरराइटिंग पेज लिखते हैं?
- 22. बैश गूंज के बिना फ़ाइल लिखते हैं?
- 23. ऑटोमैपर मानचित्र एनम पर आधारित विभिन्न प्रकार के मानचित्र?
- 24. ओपनलेयर event.register
- 25. एंड्रॉइड ऐप में जोड़े गए Google मानचित्र ओवरले को कैसे सहेजते हैं?
- 26. नोडजेस एक फ़ाइल में जेसन लिखते हैं
- 27. फ़्यूज़न टेबल केएमएल आयात
- 28. Emacs के लिए एसवीएन: आप लेखक का नाम कैसे सेट करते हैं और पासवर्ड सहेजते हैं?
- 29. ओपनलेयर और टाइपस्क्रिप्ट?
- 30. आप जावास्क्रिप्ट में कक्षा कैसे लिखते हैं?
यहाँ एक समान समाधान है: मदद कर सकता है? http://gis.stackexchange.com/questions/17031/openlayers-format-kml-write-style – user1040259