mapnik वेक्टर टाइल बनाम कच्चे GeoJSON प्रदर्शन

वोट
0

मैं अनुभव कर रहा हूँ > 2s एक परिवर्तित करने के लिए समय प्रसंस्करण 120 MB geojsonके लिए फ़ाइल protobufके माध्यम से Mapnikवेक्टर टाइल नोड बाइंडिंग।

दूसरे छोर पर कच्चे की सेवा geosjonफ़ाइल लेता है 200 एमएस के तहत

क्या यह सामान्य है ? यदि हां, तो अधिक वेक्टर टाइल्स की सेवा की बात क्या है geojson(मैं के साथ इसे देख रहा हूँ mapbox-gl-js)?

यहाँ मेरी कोड के एक उद्धरण है:

// Load GeoJson into memory

var fs = require(fs);
var content = JSON.parse(fs.readFileSync(us_counties.json));


// Initialise Mapnik and mercator object

mapnik.register_default_fonts();
mapnik.register_default_input_plugins();

var mercator = new SphericalMercator({
  size: 256
 });

// Vector Tile Router

router.get('/:z/:x/:y.pbf', function(req, res) {

  var bbox = mercator.bbox(
    +req.params.x,
    +req.params.y,
    +req.params.z,
    false,
    '4326'
  );

  // Convert GEOJSON to protobuf VectorTile and Serve

  var vtile = new mapnik.VectorTile(+req.params.z, +req.params.x, +req.params.y)
  vtile.addGeoJSON(JSON.stringify(content), 'fixture_layer')

  res.setHeader('Content-Encoding', 'deflate')
  res.setHeader('Content-Type', 'application/x-protobuf')


  zlib.deflate(vtile.getData(), function(err, pbf) {
    res.send(pbf);
  })
});
07/08/2016 को 14:33
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
2

GeoJSON और वेक्टर टाइल्स प्रत्येक शक्तियों और कमजोरियों MapBox जीएल के लिए डेटा स्वरूप के रूप में की है।

  • वेक्टर टाइल्स GeoJSON से ज्यादा पूर्व प्रसंस्करण की आवश्यकता होती है
  • GeoJSON अपनी संपूर्णता में डाउनलोड किया जाना चाहिए वेक्टर टाइल्स टाइल में डाउनलोड किया जा सकता है, जबकि के रूप में व्यूपोर्ट को भरने के लिए की जरूरत है (यह एक एकल x00 जीबी GeoJSON के रूप में की ओपन स्ट्रीट मानचित्र सभी डाउनलोड करने के लिए असंभव के पास होगा!)
  • GeoJSON, clientside संशोधित किया जा सकता है, जबकि वेक्टर टाइल्स नहीं कर सकते
  • GeoJSON मानव पठनीय है, जबकि वेक्टर टाइल्स नहीं हैं

GeoJSON आप के लिए काम कर रहा है, तो मैं आपको इसका इस्तेमाल करने के लिए प्रोत्साहित करते हैं! बस ऐसे मामलों में जहां अपने उपयोगकर्ताओं को जल्दी से 120 एमबी डाउनलोड करने के लिए असमर्थ हो सकता है के बारे में पता होना।

08/08/2016 को 17:22
का स्रोत उपयोगकर्ता

वोट
0

वेक्टर टाइल दोषरहित नहीं है, वेक्टर टाइल टाइल ग्रिड चौराहे तक कोने दौर भी ज्यामिति को सरल। तो यहाँ समस्या आती है, वेक्टर टाइल में मेरे बहुभुज के कुछ सही ढंग से ड्राइंग नहीं कर रहे हैं। तुम्हें पता है, इस समस्या से अवगत होना चाहिए, क्योंकि यह मेरे पार्सल प्रयोग करने योग्य नहीं के बाद से हमेशा मैं आसानी से मिल सकता है कुछ पार्सल लाइनों को सही ढंग से ड्राइंग नहीं कर रहे हैं बनाता है।

दूसरा वेक्टर टाइल केवल MapBox जीएल js, GeoJSON गूगल मानचित्र, openlayer, पत्रक, बिंग नक्शा, MapQuest द्वारा समर्थित, आदि .... MapBox js से समर्थन करते हैं।

आप GeoJSON के प्रदर्शन के बारे में चिंता है, तो यहां समाधान है:

सर्वर साइड, उपयोग geobuf पर, क्रमानुसार करने (एनकोड) प्रोटोकॉल बफर बाइनरी फ़ॉर्मेट में GeoJSON, यह मूल GeoJSON आकार के 20% तक सेक। 120MB-geojson- 20MB geobuf।

सर्वर से हस्तांतरण 20MB geobuf ग्राहक ब्राउज़र, उपयोग geobuf (जावास्क्रिप्ट lib) फिर GeoJSON को डिकोड करने के लिए करने के लिए इंटरनेट के माध्यम से।

ब्राउज़र से में, गूगल मानचित्र, बिंग नक्शा, openlayer, पत्रक, आदि के साथ सीधे GeoJSON प्रस्तुत करना ....

यह आपको एक दोषरहित और त्वरित प्रतिक्रिया के समाधान दे।

16/11/2016 को 16:11
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more