【问题标题】:Google Maps API 3, c# MVC5谷歌地图 API 3,c# MVC5
【发布时间】:2015-01-13 09:38:25
【问题描述】:

您好,我对 latlng 类有一点问题。

当我这样使用它时:

position: new google.maps.LatLng(51.172414, 17.115294)

标记位置正确。

但是当我想这样做时:

position: new google.maps.LatLng(@Model[0].latitude, @Model[0].longitude),

逗号和最后一个括号有语法错误,标记不显示。浏览器调试器不显示js有任何问题。

latitudelongitude 是十进制的。是逗号后面有很多数字的原因吗?如果是,那么应该是js中的一些错误,在视图中没有语法错误。

知道有什么问题吗?或者如何在这个类中使用来自模型的自己的数据?

【问题讨论】:

  • 你为什么把逗号放在最后?下一行是什么?
  • 构造函数映射的另一部分:映射,语法错误在括号中的逗号,纬度之后和经度之后的括号中。
  • 生成的 HTML 在浏览器中是什么样子的?你的代码看起来不错。忽略 Visual Studio 可能显示的任何语法错误。 Razor Intellisense 非常糟糕。只需运行您的应用程序,看看生成的 javascript 与工作代码有何不同。
  • 当我使用数字或变量时,html 没有区别。页面上只有一个区别。没有标记。我找不到标记的 html 代码。 Google Maps Api 防止阻止 rmb 点击,所以我试图深入 html 直到最后一个高亮元素
  • 您确定模型中的十进制值是有效的纬度和经度数字吗?

标签: javascript c# google-maps asp.net-mvc-5


【解决方案1】:

问题出在分隔符上。在 DB 中有逗号,在 VS 中有点。但是在 js 中的 razor 中又出现了逗号。我就这样解决了。

var latit = @Model[0].latitude.ToString().Replace(',','.');
var longit = @Model[0].longitude.ToString().Replace(',','.');            
var marker = new google.maps.Marker({               
    position: new google.maps.LatLng(latit, longit),
    map: map,
    title: '@Html.Raw(Model[0].name)',
    html: '<img src="/Img/'+@Model[0].id+ '_0.jpg" width="250px" height="250px">'
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-31
    • 2012-08-02
    • 2014-11-21
    相关资源
    最近更新 更多