【问题标题】:Add marker to center of static google map将标记添加到静态谷歌地图的中心
【发布时间】:2013-01-03 14:07:20
【问题描述】:

创建谷歌地图并以给定位置为中心非常简单(见下文)。通过执行markers=color:blue%7Clabel:S%7C11211%7C11206%7C11222 之类的操作,创建谷歌地图并在其上显示标记也很简单。

我将如何创建一个像下面这样的简单居中地图,但在最中心添加一个标记?谢谢

<img alt="Map" src="http://maps.google.com/maps/api/staticmap?center=+AUBURN+WA+98001&amp;zoom=14&amp;size=400x400&amp;sensor=false">

【问题讨论】:

  • @Dr.Molle。是的,我有。它描述了添加标记,但不是在中心。我想我可以像在我的示例中那样创建一个指定中心的地图,然后创建一个具有完全相同地址的标记,但是,我希望有一种更有效的方法可以通过一次调用谷歌的数据库(或者他们这样做)
  • This 为我工作(并且应该根据文档工作)。
  • 它接近居中,但不是。可能已经足够好了。我可以居中的唯一方法是执行以下操作:maps.googleapis.com/maps/api/…

标签: google-maps


【解决方案1】:

如果是地图,您还可以在顶部添加自己的居中背景图片 :)

background: url('yourmarker.png' ) center no-repeat, url(http://maps.google.com/maps/api/staticmap?center=AUBURN+WA+98001&zoom=14&amp&size=400x400);

【讨论】:

    【解决方案2】:

    我猜地图会自动适合显示指定的标记, here you will find

    标记位置

    每个标记描述符必须包含一组一个或多个位置 定义在地图上放置标记的位置。这些位置可能是 指定为纬度/经度值或地址。这些 位置使用竖线字符 (|) 分隔。

    位置参数定义了标记在地图上的位置。如果 该位置不在地图上,该标记不会出现在 构建图像,前提是中心和缩放参数是 提供。但是,如果未提供这些参数,则静态 地图服务器会自动构建一个包含 提供的标记。 (请参阅下面的隐式定位。)

    【讨论】:

    【解决方案3】:

    这里我一步一步给出代码

    NSString *strLat = [NSString stringWithFormat:@"%f",_message.latitude];
    NSString *strLong = [NSString stringWithFormat:@"%f",_message.longitude];
    NSString *strURL = [NSString stringWithFormat:@"%@center=%@,%@&zoom=15&size=200x200&markers=color:red%%7Clabel:C%%7C%@,%@&key=%@",https://maps.googleapis.com/maps/api/staticmap?,strLat,strLong,strLat,strLong,GOOGLE_API_BROWSER_KEY];
    NSLog(@"strURL %@",strURL);
    strURL = [strURL stringByReplacingOccurrencesOfString:@"%%" withString:@"%"];
    

    现在你有一个图片网址

    【讨论】:

    • 谢谢老兄。只给center 没有任何价值就行了
    【解决方案4】:

    地址的谷歌静态地图参考:

    https://developers.google.com/maps/documentation/maps-static/dev-guide#Addresses

    这是我最近用来执行此操作的一个 JavaScript 函数。传递给函数的 addressElements 参数是一个地址元素数组,例如['10 Main St', 'Brownsville', 'MS', '27123', 'USA'].

    您可以看到我已经注释掉了 center 和 zoom 属性,因为您在定义标记时不需要这些属性。要删除标记,只需取消注释这两行并注释掉标记行。

    您显然可以自己构建此图像,但我使用 URLSearchParams 来简化参数创建并自动对它们进行 URL 编码。

    function getGoogleMapsImage(addressElements) {
        var image = Nucleus.element('img');
        image.width = '256';
        image.height = '256';
        var joined = addressElements.join(',');
        var params = new URLSearchParams();
        //params.append('center', joined);
        //params.append('zoom', '15');
        params.append('size', '256x256');
        params.append('maptype', 'roadmap');
        params.append('key', 'YOUR_API_KEY_HERE');
        params.append('markers', 'color:red|label:C|' + joined);
        var url = 'https://maps.googleapis.com/maps/api/staticmap?' + params.toString();
        image.src = url;
        return image;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-08
      • 2015-09-12
      • 1970-01-01
      相关资源
      最近更新 更多