varios una tabla registros llenar insertar datos como columna agregar mysql leaflet mapbox

registros - como llenar una tabla en mysql



Cómo guardar un punto de polígono completado leaflet.draw en la tabla mysql (7)

El método @Michael Evans debería funcionar si desea utilizar GeoJSON.

Si desea guardar puntos LatLngs para cada forma, podría hacer algo como esto:

map.on(''draw:created'', function (e) { var type = e.layerType; var layer = e.layer; var latLngs; if (type === ''circle'') { latLngs = layer.getLatLng(); } else latLngs = layer.getLatLngs(); // Returns an array of the points in the path. // process latLngs as you see fit and then save }

Me gustaría utilizar leaflet.draw para crear contornos de regiones. He logrado que funcione correctamente: https://www.mapbox.com/mapbox.js/example/v1.0.0/leaflet-draw/

Ahora me gustaría guardar los datos de cada polígono en una tabla mysql. Estoy un poco atascado en cómo me gustaría exportar los datos y el formato en el que debería hacerlo.

Si es posible, me gustaría volver a colocar los datos en un mapa de mapbox / prospecto en el futuro, así que supongo que algo como Geojson sería bueno.


No olvides el radio del círculo.

if (layer instanceof L.Circle) { shapes.push([layer.getLatLng()],layer.getRadius()) }

PD: es posible que la declaración no obtenga el formato adecuado, pero puede ver el punto. (O mejor dicho, el radio y el punto ;-)


Obtener acciones como matriz asociativa + radio de círculo

map.on(''draw:created'', function (e) { var type = e.layerType, layer = e.layer; if (type === ''marker'') { layer.bindPopup(''Call Point!''); } drawnItems.addLayer(layer); var shapes = getShapes(drawnItems); console.log("shapes",shapes); }); var getShapes = function (drawnItems) { var shapes = []; shapes["polyline"] = []; shapes["circle"] = []; shapes["marker"] = []; drawnItems.eachLayer(function (layer) { // Note: Rectangle extends Polygon. Polygon extends Polyline. // Therefore, all of them are instances of Polyline if (layer instanceof L.Polyline) { shapes["polyline"].push(layer.getLatLngs()) } if (layer instanceof L.Circle) { shapes["circle"].push([layer.getLatLng()]) } if (layer instanceof L.Marker) { shapes["marker"].push([layer.getLatLng()],layer.getRadius()); } }); return shapes; };


Para mi funciono esto:

map.on(L.Draw.Event.CREATED, function (e) { map.addLayer(e.layer); var points = e.layer.getLatLngs(); puncte1=points.join('',''); puncte1=puncte1.toString(); //puncte1 = puncte1.replace(/[{}]/g, ''''); puncte1=points.join('','').match(/([/d/.]+)/g).join('','') //this is the field where u want to add the coordinates $(''#geo'').val(puncte1); });


Por lo tanto, podría usar draw: creado para capturar la capa, convertirlo a geojson y luego modificarlo para guardar en su base de datos. Solo he hecho esto una vez y estaba sucio pero funcionó.

map.on(''draw:created'', function (e) { var type = e.layerType; var layer = e.layer; var shape = layer.toGeoJSON() var shape_for_db = JSON.stringify(shape); });


Si quieres recoger las coordenadas, puedes hacerlo de esta manera:

var drawnItems = new L.FeatureGroup(); map.addLayer(drawnItems); map.on(''draw:created'', function (e) { var type = e.layerType, layer = e.layer; drawnItems.addLayer(layer); var shapes = getShapes(drawnItems); // Process them any way you want and save to DB ... }); var getShapes = function(drawnItems) { var shapes = []; drawnItems.eachLayer(function(layer) { // Note: Rectangle extends Polygon. Polygon extends Polyline. // Therefore, all of them are instances of Polyline if (layer instanceof L.Polyline) { shapes.push(layer.getLatLngs()) } if (layer instanceof L.Circle) { shapes.push([layer.getLatLng()]) } if (layer instanceof L.Marker) { shapes.push([layer.getLatLng()]); } }); return shapes; };


map.on(''draw:created'', function (e) { var type = e.layerType; var layer = e.layer; var shape = layer.toGeoJSON() var shape_for_db = JSON.stringify(shape); }); // restore L.geoJSON(JSON.parse(shape_for_db)).addTo(mymap);