【问题标题】:A better way to create a pin point on the map在地图上创建定位点的更好方法
【发布时间】:2015-05-11 21:43:16
【问题描述】:

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

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

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

我愿意使用 Kendo ASP.NET 来完成这项工作。

【问题讨论】:

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


    【解决方案1】:

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

    为此,您需要添加一个Marker 类型的图层并将其绑定到提供坐标的数据源。见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 请求来调用您的控制器并检索数据:

    $.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);
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-21
      • 1970-01-01
      • 2012-10-04
      • 1970-01-01
      • 2012-12-25
      • 2012-06-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多