c# - 在 map 上创建定位点的更好方法

标签 c# .net asp.net-mvc kendo-ui kendo-asp.net-mvc

我想创建一个表单,用户可以在其中输入地址信息。 一开始,表单只会显示文本框和以特定点为中心的 map 。

当用户输入信息并重新打开表单时,我希望创建一个针点来指出该位置(如果可用)。

我自己进行了搜索,不确定什么是最好的方法。

我愿意使用 Kendo ASP.NET 来完成它。

最佳答案

我假设您有一个为您提供地理数据的数据库/网络服务,并且您使用用户提供的地址进行查找。

为此,您需要添加一个 Marker 类型的层并将其绑定(bind)到提供坐标的数据源。参见 Binding markers to remote data .

@(Html.Kendo().Map()
    .Name("map")
    .Center(30.268107, -97.744821)
    .Zoom(15)
    .Layers(layers =>
    {
        layers.Add()
            .Type(MapLayerType.Tile)
            .UrlTemplate("http://tile2.opencyclemap.org/transport/#= zoom #/#= x #/#= y #.png")
            .Subdomains("a", "b", "c")
            .Attribution("&copy; <a href='http://osm.org/copyright'>OpenStreetMap contributors</a>." +
                         "Tiles courtesy of <a href='http://www.opencyclemap.org/'>Andy Allan</a>");

        layers.Add()
            .Type(MapLayerType.Marker)
            .DataSource(dataSource => dataSource
                  .Read(read => read.Action("_StoreLocations", "Map"))
            )
            .LocationField("LatLng")
            .TitleField("Title");
    })
)

当用户输入他的地址信息时,您可以使用 ajax 请求调用您的 Controller 并检索数据:

$.ajax({
    type: "POST",
    url: '@Url.Action("_StoreLocations", "Map")',
    contentType: "application/json; charset=utf-8",
    dataType: 'json',
    data: { addressInfo: info },
    success: function (result) {
        $("#map").data("kendoMap").layers[1].dataSource.data(result);
    }
});

关于c# - 在 map 上创建定位点的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30178141/

相关文章:

c# - 将位图对象传递给非托管代码

c# - 有没有办法为类的特定属性隐藏一些枚举值?

c# - 如何在 WinForms 中扩展控件?

c# - IHttpHandler.IsReusable 有什么用?

c# - Xamarin.forms 中的点击手势

c# - 是否可以通过生成 .proto 文件使用 python 反序列化在 c# 中使用 protobuf-net 序列化的对象?

c# - 如何在 C# 中检查多行文本框中的选定文本?

.net - 访问被拒绝在 Windows 7 上运行 sn.exe

asp.net - 在 ASP.NET 中自动记录长/异常页面执行时间

asp.net - 将 Container.Eval 传递给 ASP.NET Repeater Control 内的 (Html.ReaderPartial)