【问题标题】:Can you use city/state to center Google map instead of Lat/Lng?您可以使用城市/州而不是 Lat/Lng 来居中 Google 地图吗?
【发布时间】:2019-11-20 06:17:07
【问题描述】:

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

我有以下两个问题:

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

所以我需要能够只使用城市/州而不是 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 或输入。但是有没有办法在坐标不可用时使用城市/州来设置“中心:”?

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

【问题讨论】:

  • 我已经构建了数组。仍然欢迎任何答案来帮助其他任何人从这个问题中得到偏头痛。干杯!

标签: maps google-geolocation


【解决方案1】:

为了回答你的问题,基本上center 参数只接受LatLngLatLngLiteral

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

获取用户位置后,您可以使用检测到的地理坐标将地图居中,或者您可能想查看我的 answer 来自此 post,它演示了如何检测用户位置(使用 HTML5 Geolocation API),获取其对应的城市地址并将地图的边界设置为城市地址的视口。

我希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    • 1970-01-01
    • 2011-02-23
    • 2014-10-18
    • 1970-01-01
    • 2010-09-19
    • 2014-01-15
    相关资源
    最近更新 更多