Comments (3)
Good idea. I'll add support for toGeoJSON to all markers/polygons so those items are in line with other Leaflet marker and polygon classes.
from leaflet-dvf.
I hacked it a bit and have the following in leaflet-dvf.markers.js in L.RegularPolygonMarker definition we add following:
constructPolygon: function () {
var map = this._map;
this._point = map.latLngToLayerPoint(this._latlng);
this._points = this._getPoints();
var polygonPointsLL = [];
$.each(this._points, function(idx, point) {
polygonPointsLL.push(map.layerPointToLatLng(point));
});
return polygonPointsLL;
},
finally the polygonPoinsLL can then be passed into a function in your webpage outside dvf:
function constructGeoJSON(polygonObject)
{
var coordList = [];
var curcoords = [];
var firstLat=[];
var firstLng=[];
$.each(polygonObject, function (idx, pObject)
{
var lat = pObject.lat;
var lng = pObject.lng;
if (idx == 0)
{
firstLat = lat;
firstLng = lng;
}
curcoords.push([lng,lat]);
});
curcoords.push([firstLng,firstLat]);
coordList.push(curcoords);
var allFeatList = [{
"type": "Feature",
"properties": {},
"geometry": {
"type": "Polygon",
"coordinates": coordList
}
}];
var opGJ = {
"type": "FeatureCollection",
"features": allFeatList
}
console.log(JSON.stringify(opGJ));
}
This works for normal polygons but does not work for hollow polygons.
While this is a hack the correct way to do this is to use L.Polygon.extend instead of L.Path.extend but there are issues around geo-referencing paths in Leaflet. Not sure if it will work with SVG etc.
from leaflet-dvf.
@hrishiballal I'm currently in the process of implementing this, along with a number of other improvements. I'm open to your thoughts on this, but my plan is not to export a geo-referenced version of the points that make up a RegularPolygonMarker geometry as a GeoJSON Polygon feature, because that polygon that's displayed is zoom level dependent. This is the reason that the RegularPolygonMarker class does not extend Polygon. It's more like a custom drawn SVG image centered at some latitude and longitude that gets redrawn every time a user zooms in/out than some polygon with points tied to specific geographic coordinates. If it was a Polygon, it would be really tiny when zoomed out and really large when zoomed in. Does that make sense?
My plan is to export a GeoJSON Point feature with all the RegularPolygonMarker options available as properties, plus a "type" property that lets other applications know that it's a regular polygon. Another option might be to also include the SVG representation of the marker as a GeoJSON property as well. That way external applications might be able to use that as what's displayed. Let me know what you think.
from leaflet-dvf.
Related Issues (20)
- Div not visible inside popup HOT 1
- Change color line HOT 3
- Compatibilty with leaflet1.2.0 HOT 4
- create PieChartDataLayer use Geojson data HOT 3
- Question about React integration with Leaflet 1.2.0 and Leaflet-dvf 0.3.1 HOT 7
- On click on a slice of the pie table should show only the value of that slice, not the values for all the slices HOT 2
- Create 3D pie chart markers HOT 2
- Leaflet 1.2.0 and L.Mixin.Events HOT 4
- PieCharts don't show when using the examples HOT 7
- Flowline using arrays HOT 2
- Create RegularPolygonMarker in featureGroup
- a little mistake about the "_createText" method in the source code HOT 3
- Styling attributes for markers and charts HOT 3
- GeohashLayer leaks layers when being removed
- leaflet version? HOT 2
- flight data arrow becomes a square in ie11 HOT 1
- Compatibility with Leaflet 1.7.0 HOT 1
- how can i add offline map or tile server to it HOT 1
- Demo not working anymore (?) HOT 1
- git protocol dependency - geohash
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from leaflet-dvf.