Mapbox'ta çakışan daireler yapmanın bir yolu aynı rengi gösterir ve yalnızca dış kenar ekranının etrafındaki kenarlığa sahip mi?Mapbox Çakışan Daireler
Ve ben istediğim için photoshop bu yaptı:
Mapbox'ta çakışan daireler yapmanın bir yolu aynı rengi gösterir ve yalnızca dış kenar ekranının etrafındaki kenarlığa sahip mi?Mapbox Çakışan Daireler
Ve ben istediğim için photoshop bu yaptı:
Onların grubu göstermek için tüm çevrelerin stil bir yolu yoktur sanmıyorum iken anahatta, tüm çember geometrilerinin birleşimini oluşturarak ve stilinizi buna uygulayarak istediğiniz efekti elde edebilirsiniz. Ne yazık ki, Leaflet'in L.circle
class bir dairenin geometrisine merkez noktasının ötesine erişmenin bir yolunu sunmaz ve bir birlik gerçekleştirmek için dairenin kendi yoluna ihtiyacınız vardır. Neyse ki, Leaflet Geodesy ve LGeo.circle
sınıfı vardır; bu, belirli bir yarıçapa ve parça sayısına sahip dairesel çokgenler üretir. Çevrelerinizin bu çokgen gösterimlerini aldıktan sonra, istediğiniz anahatları oluşturmak için turf.union
kullanabilirsiniz.
pointLayer
adı noktaları bir tabaka ile başlayan ki (bu
L.geoJson
,
L.mapbox.featureLayer
veya
.eachLayer
method devralır başka sınıfı olabilir). Daha sonra bunların her biri için bir dairesel çokgen oluştururken ve bu gibi geçici katman grubuna eklenmesi, özellikleri adımlayabilirsiniz:
var circleLayer = L.layerGroup();
var radius = 5000
var opts = {
parts: 144
};
pointLayer.eachLayer(function(layer) {
LGeo.circle(layer.getLatLng(), radius, opts).addTo(circleLayer);
});
radius
metre olup parts
seçenek segment sayısı nerede olduğunu Poligonlarınızın sahip olmasını istersiniz. Daha sonra, geçici gruptaki tüm katmanları dizisini almak için .getLayers
yöntemini kullanın sonra tüm özelliklerinden bir birlik yaratmak için üzerinde yineleme:
var circleUnion = unify(circleLayer.getLayers()).addTo(map);
function unify(polyList) {
for (var i = 0; i < polyList.length; ++i) {
if (i == 0) {
var unionTemp = polyList[i].toGeoJSON();
} else {
unionTemp = turf.union(unionTemp, polyList[i].toGeoJSON());
}
}
return L.geoJson(unionTemp, {style: unionStyle});
}
unionStyle
Eğer uygulamak istediğiniz ne olursa olsun tarzıdır senin yeni kombine çevreler. İşte bazı rasgele veri ile tüm bu gösteren bir örnek keman olduğunu: bu eğlenceli (ve zorlu) Sorun çözmeye olacak gibi
Teşekkürler Nathan. Yorumunu araştırdım ve işe koyuldum. Ben sadece bunu cevap olarak yazman için sana mesaj verecektim ama sen beni dövüyordun. Jeodeziye işaret ettiğiniz için tekrar teşekkürler. – Lereveme
Bu görünüyor. Örnek bir haritaya bağlantınız var mı? – Armstrongest
Bu gönderiye başlamak isteyebilirsiniz: http://stackoverflow.com/questions/24056782/ios-parse-geopoints-mapbox-shapes ve bu bağlantı: http://mathworld.wolfram.com/Circle-CircleIntersection.html – Armstrongest
Ayrıca bkz. [Bu yanıt] (http://stackoverflow.com/a/35407512/5403120). [Leaflet Geodesy] (https://github.com/mapbox/leaflet-geodesy) ile puanlarınız etrafında GeoJSON çevreleri oluşturursanız, [Turf.js] ile bir birlik yapın (http://turfjs.org/), çakışan tüm çevrelerin etrafında tek bir kenarlık olacak. – nathansnider