在谷歌地图上创建一个多边形,并使用MVC将结果保存到数据库中
Creating a polygon on googlemap and save the result to database using MVC
我想编写一个应用程序,让用户在Google地图上绘制一个多边形,然后让他将其保存到数据库中。
稍后当我们想要时,他应该能够从数据库中在地图上绘制多边形。
最好的方法是什么?
我的建议是将多边形数据保存在 js 数组中,并使用 JSON 将其发送到 mvc。这是一个好方法吗?
如何在谷歌地图上绘制多边形?
如何使用JS从客户端调用MVC上的控制器?
我是否需要为此使用特殊的控制器(接收 JSON 数据)
是否有任何示例代码?
这是一个非常粗略的示例,说明如何允许用户绘制多边形。
// declare map outside of initialize function so that drawPoints() can use it
var map;
// called when page is loaded
function initialize() {
// arbitrary point
var myLatLng = new google.maps.LatLng(24.88484848484, -70.268858484);
// options to init map with, again arbitrary
var myOptions = {
zoom: 5,
center: myLatLng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
// get our map object
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
// array to store markers that user has drawn
var markers = [];
// add event listener to the map to get the click events and draw a marker
google.maps.event.addListener(map, 'click', function(e) {
var marker = new google.maps.Marker();
marker.setPosition(e.latLng);
marker.setMap(map);
marker.setVisible(true);
// push it to the markers array
markers.push(marker);
// add an event listener to each marker so that we can draw a polygon
// once user clicks on on of the markers in the markers array, assuming
// that they are ready to join up the polygon and have it drawn
google.maps.event.addListener(marker, 'click', function(e) {
drawPoints(markers);
// empty the markers array so that the user can draw a new one, without
// them all joining up. this is perphaps where you would want to push
// the markers array to a database, storing the points as latitude/longitude
// values so that they can be retrieved, put into an array, and drawn
// as a polygon again.
markers = [];
});
});
}
function drawPoints(markers) {
var poly = new google.maps.Polygon;
var points = [];
for (var i = 0; i < markers.length; i++) {
points.push(markers[i].getPosition());
}
poly.setMap(map);
poly.setPath(points);
poly.setVisible(true);
}
在这里尝试一下
这也将非常有用。
编辑:我可能应该解释如何绘制多边形...
单击地图将创建一个标记。您可以根据需要创建任意数量。单击已放置的标记之一后,将在标记的点之间绘制一个多边形。绘制面后,这些标记将不再计入从中绘制面的下一组。
相关文章:
- 如何将自定义字段添加到Json结果-ASP.NET MVC
- Json 结果 MVC 控制器通过 Jquery 到 Google 地图
- 在谷歌地图上创建一个多边形,并使用MVC将结果保存到数据库中
- 如何查找选中的复选框并将其传递给 MVC 中的操作结果
- 无法在 MVC 中使用 jquery/js 将 json 数据(API 结果)绑定到下拉列表
- 如何告诉MVC 4视图返回带有子路由的JSON结果
- MVC C#中的自定义操作结果返回特定视图
- 在Asp,NET MVC中使用Javascript访问受保护的页面返回未经授权的结果
- MVC html开始表单返回JavaScript操作结果
- 调用ASP中控制器的ActionMethod.. NET MVC从Javascript,结果在Excel工作表保存
- ASP.. NET MVC控制器结果返回到视图
- 自动完成使MVC表结果可见
- 如何在c#(mvc)的类方法中获取JavaScript函数的返回结果
- 注入一些东西到ASP MVC结果
- MVC ajax从内部更新部分结果
- 在Spring MVC中返回@Async方法结果,并将其返回给Ajax客户端
- Asp.net MVC或javascript将另一个页面的结果返回给方法
- 处理ASP.. NET MVC文件结果返回
- Spring MVC如何将带有数据的视图结果发送给ajax代码
- 如何使用Ajax获取MVC Json结果并填充到表中