angular - შეინაფაილის რუკის ჩვენება ვებ ბრაუზერში angular2-ის გამოყენებით
მინდა გამოვაჩინო shapefile-ის რუკა ვებ ბრაუზერში ჩემი angular2 აპლიკაციის გამოყენებით. ქვემოთ არის ჩემი კოდის ფრაგმენტი და მე ვიყენებ leaflet ჯავასკრიპტის ბიბლიოთეკას. მაგრამ ვერ იტვირთება 'Geology.zip' ფაილი. არსებობს რაიმე სპეციფიკური გზა zip ფაილების დასატვირთად angular აპლიკაციებში? ან რაიმე შესაძლო გზა ამის გაკეთებისთვის?
var shpfile = new L.Shapefile('Geology.zip', {
onEachFeature: function(feature, layer) {
if (feature.properties) {
layer.bindPopup(Object.keys(feature.properties).map(function(k) {
return k + ": " + feature.properties[k];
}).join("<br />"), {
maxHeight: 200
});
}
}
});
shpfile.addTo(m);
shpfile.once("data:loaded", function() {
console.log("finished loaded shapefile");
});
პასუხი #1
ამ ბიბლიოთეკის მიხედვით, რომელსაც ცდილობთ გამოიყენოთ, ის მოძველებულია და რაც მე ვცადე, მისი ინსტალაცია npm-ის გამოყენებით შეუძლებელია.
ამიტომ შეგიძლიათ გამოიყენოთ, მაგალითად, ეს ბიბლიოთეკა Shapefile-ის დასაჩვენებლად Leaflet-ში მას GeoJSON-ად გადაკეთების შემდეგ.
import 'leaflet';
import * as shp from 'shpjs';
declare let L;
ngOnInit() {
const m = L.map('map').setView([34.74161249883172, 18.6328125], 2);
const geo = L.geoJson({features: []}, { onEachFeature: function popUp(f, l) {
const out = [];
if (f.properties) {
for (const key of Object.keys(f.properties)) {
out.push(key + ' : ' + f.properties[key]);
}
l.bindPopup(out.join('<br />'));
}
}}).addTo(m);
const base = 'your-shapefile.zip';
shp(base).then(function(data) {
geo.addData(data);
});
}
თუმცა რამდენიმე შეცდომა წარმოიშობა და თქვენ შეგიძლიათ მათ გადალახვა თუ გაანალიზებთ ამ დემოს
