首页 > 解决方案 > 您可以使用城市/州而不是 Lat/Lng 来居中 Google 地图吗?

问题描述

我正在为一个拥有大约 80 个位置的制造商编写一个站点。当它出现在模式中时,我希望能够将地图集中在一个位置的城市/州。

我有以下两个问题:

  1. 每个位置的坐标不在当前站点数据中
  2. 尝试使用 Google 的地理定位服务获取坐标会破坏所有页面

所以我需要能够只使用城市/州而不是谷歌复杂的 Geoloc JSON/XML 函数。这是一回事吗?我在任何地方都找不到它。

var plant_map = new google.maps.Map(document.getElementById('map-plants'), {
    // zoom: 5,
    minZoom: <?php echo $zoomLevel ?>,
    center: new google.maps.LatLng(<?php echo $latitude; ?>, <?php echo $longitude; ?>),
    mapTypeId: 'terrain',
    mapTypeControl: false,
    // scaleControl: false,
    // disableDefaultUI: true
});

上面的代码运行良好,因为$latitude$longitude数据来自用户 cookie 或输入。但是有没有办法在坐标不可用时使用城市/州来设置“中心:”?

另一种方法是手动获取每个位置的纬度/经度以将其硬编码到数组中。谢谢!

标签: mapsgoogle-geolocation

解决方案


要回答您的问题,基本上,center参数只接受LatLngor LatLngLiteral

由于该center参数是实例化地图所必需的,因此您可能希望在实例化地图之前先获取用户的位置。

获取用户位置后,您可以使用检测到的地理坐标将地图居中,或者您可能想查看我在这篇文章中的回答,该帖子演示了如何检测用户位置(使用 HTML5 Geolocation API),获取其相应的城市地址并设置地图的边界到城市地址的视口。

我希望这有帮助!


推荐阅读