繁体   English   中英

如何在谷歌地图中定义纬度和经度而不是地址?

[英]How to define latitude & longitude instead of address in google map?

我在我的应用程序中显示地图。我添加了下面的代码,现在地图可以正确显示特定的城市名称。 我的问题是我需要使用特定城市的纬度和经度来获取位置。

我不想要任何新代码。 是否有可能通过传递 @item.Latitude@item.Longitude 而不是 @item.city 来获取此代码本身中的纬度和经度值

<div class="gMapsCanvas" data-address="@item.city"></div>

    <script type="text/javascript">
            var GoogleMap = function ga(canvas, address) {
                // debugger;
                var _parent = this;

                //this.location = new google.maps.LatLng(-34.397, 150.644);

                var options =
                {
                    center: this.location,
                    zoom: 11,
                    mapTypeId: google.maps.MapTypeId.ROADMAP,
                    mapTypeControlOptions:
                    {
                        style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR,
                        position: google.maps.ControlPosition.TOP_CENTER
                    },
                    streetViewControl: false
                };

                this.map = new google.maps.Map(canvas, options);

                var geocoder = new google.maps.Geocoder();

                geocoder.geocode({ 'address': address }, function (results, status) {
                    if (status != google.maps.GeocoderStatus.OK)
                        return;

                    _parent.location = results[0].geometry.location;

                    var marker = new google.maps.Marker(
                    {
                        map: _parent.map,
                        position: _parent.location
                    });

                    _parent.resize();
                });
            };

            GoogleMap.prototype.resize = function () {
                google.maps.event.trigger(this.map, "resize");

                this.map.setCenter(this.location);
            }

            var Maps = function (classes) {
                var _parent = this;

                this.maps = new Array();

                classes.each(function () {
                    _parent.maps.push(new GoogleMap($(this).get(0), $(this).attr("data-address")));
                });
            };

            Maps.prototype.resize = function () {
                for (var cnt = 0; cnt < this.maps.length; cnt++) {
                    this.maps[cnt].resize();
                }
            };

            var maps;

        </script>
    <script type="text/javascript">
        $(".tiptext").mouseover(function () {
            $(this).children(".description").show();

            maps = new Maps($(".gMapsCanvas"));

        }).mouseout(function () {
            $(this).children(".description").hide();

        });

    </script>

在浏览器中显示 Google 地图的方式有很多种。 但最简单和最好的两种方法是: 1. 使用 Goggle MAP API https://developers.google.com/maps/?hl=en 2. Google Polymer 如下所示:

     <!-- Polyfill Web Components support for older browsers -->
<script src="components/webcomponentsjs/webcomponents-lite.min.js"></script>

<!-- Import element -->
<link rel="import" href="components/google-map/google-map.html">

<!-- Use element -->
<google-map latitude="37.790" longitude="-122.390"></google-map>

尝试 { 'latlng': latitude + ',' + longitude } 而不是 { 'address': address }。

我没有测试它,但它似乎根据 googlemap webservice api 工作: https : //developers.google.com/maps/documentation/geocoding/intro#ReverseGeocoding

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM