Я хотел бы знать, как я могу дать (и получить) идентификатор для многоугольника в листовке (.draw). Мне нужно это, потому что я хочу иметь возможность сообщить базе данных, что многоугольник для удаления/редактирования.Идентификация многоугольника для удаления
Заранее спасибо
EDIT:
В моей базе данных я сохранить polygon_ID и координаты полигона. Это код, где я сохраняю многоугольник: (Это trigered, когда я закончить рисование)
map.on('draw:created', function(e) {
var type = e.layerType,
layer = e.layer;
if (type == "polygon") {
var polygon = {};
polygon['geometry'] = {};
polygon['geometry']['type'] = "Polygon";
var coordinates = [];
latlngs = layer.getLatLngs();
for (var i = 0; i < latlngs.length; i++) {
coordinates.push([latlngs[i].lat, latlngs[i].lng])
}
polygon['geometry']['coordinates'] = [coordinates];
coordinates = JSON.stringify(coordinates);
//console.log(coordinates);
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
//alert("Sent!");
}
};
xhttp.open("POST", "inc/send.php?a=add&t=polygon&c=" + coordinates, true);
xhttp.send();
}
drawnItems.addLayer(layer);
});
Это мой send.php:
if(isset($_GET['c']) && isset($_GET['t']) && isset($_GET['a'])){
$coordinates = $_GET['c'];
$type \t \t = $_GET['t'];
$action \t \t = $_GET['a'];
if($type == "polygon" && $action == "add"){
$sth = $dbh->prepare('INSERT INTO polygons (coordinates) VALUES (:coordinates)');
$sth->bindParam(':coordinates', $coordinates);
$sth->execute();
}
} else {
}
Вот как я загружаю свои полигоны:
$polygonsth = $dbh->prepare("SELECT * FROM polygons");
$polygonsth->execute();
$polygonresult = $polygonsth->fetchAll();
...
foreach ($polygonresult as $row) {
\t
echo "L.polygon(" . $row['coordinates'] . ")
\t .addTo(drawnItems);
\t //console.log(pol.options.id);
";
}
Я действительно надеюсь, что это проясняет вещи.
Зависит от того, в каком формате вы храните свои полигоны, и мы не можем сделать это из вашего очень короткого вопроса. Пожалуйста, прочтите следующее: http://stackoverflow.com/help/how-to-ask – iH8
Прошу прощения за то, что вы недостаточно ясны. В моей базе данных я сохраняю все позиции по ширине и долготе многоугольных ручек, и у меня есть идентификатор для каждого полигона. Мой вопрос заключается в том, как я могу связать листовку и идентификатор mysql вместе, чтобы я мог указать базе данных, какой полигон удалить. Я использую AJAX для выполнения запроса. Может быть, ты поможешь мне сейчас? –
Все еще зависит от того, как вы инициализируете свои полигоны и как их добавить на карту. Не могли бы вы отредактировать свой вопрос и добавить информацию, которую вы добавили в свой комментарий к ней, и включить соответствующий код о том, как вы добавляете полигоны на свою карту? Индивидуальные полигоны? FeatureLayer? GeoJSON? Слишком много переменных, чтобы дать хороший ответ – iH8