Google Maps:多个自定义HTML标记

亚伯兰

我一直在研究这个小提琴,我想要一些建议。

如您所见,我无法在正确的位置绘制多个标记。无论我做什么,两个标记均基于htmlMarker[i]数组中第二个标记的位置进行渲染

谢谢你的帮助!

供参考,这是JS:

var overlay;

function initialize() {
    var myLatLng = new google.maps.LatLng(62.323907, -150.109291);
    var mapOptions = {
        zoom: 11,
        center: myLatLng,
        mapTypeId: google.maps.MapTypeId.SATELLITE
    };

    var gmap = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);

    function HTMLMarker(lat,lng){
        this.lat = lat;
        this.lng = lng;
        this.pos = new google.maps.LatLng(lat,lng);
    }

    HTMLMarker.prototype = new google.maps.OverlayView();
    HTMLMarker.prototype.onRemove= function(){}

    //init your html element here
    HTMLMarker.prototype.onAdd= function(){
        div = document.createElement('DIV');
        div.className = "htmlMarker";
        div.innerHTML = '<img src="http://www.vcsd.org/img/icon/red.png">';
        var panes = this.getPanes();
        panes.overlayImage.appendChild(div);
    }

    HTMLMarker.prototype.draw = function(){
        var overlayProjection = this.getProjection();
        var position = overlayProjection.fromLatLngToDivPixel(this.pos);
        var panes = this.getPanes();
        panes.overlayImage.style.left = position.x + 'px';
        panes.overlayImage.style.top = position.y + 'px';
    }

    //to use it
    htmlMarker = [];
    htmlMarker[0] = new HTMLMarker(gmap.getCenter().k, gmap.getCenter().D);
    htmlMarker[1] = new HTMLMarker(gmap.getCenter().k+.05, gmap.getCenter().D+.05);
    htmlMarker[0].setMap(gmap);
    htmlMarker[1].setMap(gmap);
}

我已经更新了小提琴(请参阅更新)以在HTMLMarker()中进行一些记录。并在脚本末尾。这是输出:

HTMLMarker(lat,lng)= 62.323907, -150.10929099999998
HTMLMarker(lat,lng)= 62.373906999999996, -150.05929099999997
HTMLMarker.prototype.draw=500.5001116444473, 296.6240725676762
HTMLMarker.prototype.draw=573.3178894222365, 139.71828594914405

因此,似乎传递了正确的信息,但是某些地方被覆盖。

更新

我能够隔离地图上的标记HTML元素。看起来它们嵌套在单个叠加层中:

<div style="transform: translateZ(0px); position: absolute; left: 573.317889422237px; top: 139.718285949144px; z-index: 104; width: 100%;">
  <div class="htmlMarker">
    <img src="http://www.vcsd.org/img/icon/red.png">
  </div>
  <div class="htmlMarker">
    <img src="http://www.vcsd.org/img/icon/red.png">
  </div>
</div>
莫勒博士

您必须设置图像的位置(或包含图像的div的位置)。

当前,您设置overlayImage-pane的位置(它是一个元素,每个HTMLMarker实例将附加到同一元素/窗格)

固定代码:

//init your html element here
HTMLMarker.prototype.onAdd= function(){
    this.div = document.createElement('DIV');
    this.div.className = "htmlMarker";
    this.div.style.position='absolute';
    this.div.innerHTML = '<img src="http://www.vcsd.org/img/icon/red.png">';
    var panes = this.getPanes();
    panes.overlayImage.appendChild(this.div);
}

HTMLMarker.prototype.draw = function(){
    var overlayProjection = this.getProjection();
    var position = overlayProjection.fromLatLngToDivPixel(this.pos);
    var panes = this.getPanes();
    this.div.style.left = position.x + 'px';
    this.div.style.top = position.y + 'px';
}

http://jsfiddle.net/q2cnne7y/17/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Google Maps自定义HTML标记和MarkerClustererPlus

来自分类Dev

Google Maps v3 API和WordPress ACF:多个自定义标记

来自分类Dev

由于自定义图像,Google Maps API v3 多个标记不起作用?

来自分类Dev

Google Maps API自定义图标标记不会显示

来自分类Dev

Google Maps使标记适合自定义范围

来自分类Dev

Google Maps v3-标记自定义图标

来自分类Dev

更改自定义标记Google Maps的大小

来自分类Dev

Google Maps使标记适合自定义范围

来自分类Dev

带有折线的自定义Google Maps标记

来自分类Dev

Android Google Maps:渐变颜色的自定义标记

来自分类Dev

自定义google maps api图标,作为html标签?

来自分类Dev

Android Google Map自定义标记

来自分类Dev

iOS Google Map自定义标记

来自分类Dev

Google静态地图自定义标记

来自分类Dev

Android Google Map自定义标记

来自分类Dev

iOS Google Map自定义标记

来自分类Dev

Google地方的自定义标记

来自分类Dev

使用iOS版Google Maps SDK优化自定义标记图像的性能

来自分类Dev

自定义InfoWindow,用于标记Google Maps SDK,Swift 2.0

来自分类Dev

Google Maps api v 3-更改自定义标记图标的来源

来自分类Dev

为JSON地图中的数据设置Google Maps标记的自定义信息窗口

来自分类Dev

如何将自定义数据添加到标记(Google Maps API SWIFT)

来自分类Dev

Google Maps API-激活自定义标记的信息窗口

来自分类Dev

带有自定义图标的Google Maps标记位置

来自分类Dev

Google Maps API,添加带有标签的自定义SVG标记

来自分类Dev

使用Google Maps的geoJson文件中的点的自定义标记

来自分类Dev

Google Maps API v2自定义位置标记

来自分类Dev

角形Google Maps自定义图标仅在标记更新时有效

来自分类Dev

自定义标记Google Maps Street View Xcode用于文字叠加

Related 相关文章

  1. 1

    Google Maps自定义HTML标记和MarkerClustererPlus

  2. 2

    Google Maps v3 API和WordPress ACF:多个自定义标记

  3. 3

    由于自定义图像,Google Maps API v3 多个标记不起作用?

  4. 4

    Google Maps API自定义图标标记不会显示

  5. 5

    Google Maps使标记适合自定义范围

  6. 6

    Google Maps v3-标记自定义图标

  7. 7

    更改自定义标记Google Maps的大小

  8. 8

    Google Maps使标记适合自定义范围

  9. 9

    带有折线的自定义Google Maps标记

  10. 10

    Android Google Maps:渐变颜色的自定义标记

  11. 11

    自定义google maps api图标,作为html标签?

  12. 12

    Android Google Map自定义标记

  13. 13

    iOS Google Map自定义标记

  14. 14

    Google静态地图自定义标记

  15. 15

    Android Google Map自定义标记

  16. 16

    iOS Google Map自定义标记

  17. 17

    Google地方的自定义标记

  18. 18

    使用iOS版Google Maps SDK优化自定义标记图像的性能

  19. 19

    自定义InfoWindow,用于标记Google Maps SDK,Swift 2.0

  20. 20

    Google Maps api v 3-更改自定义标记图标的来源

  21. 21

    为JSON地图中的数据设置Google Maps标记的自定义信息窗口

  22. 22

    如何将自定义数据添加到标记(Google Maps API SWIFT)

  23. 23

    Google Maps API-激活自定义标记的信息窗口

  24. 24

    带有自定义图标的Google Maps标记位置

  25. 25

    Google Maps API,添加带有标签的自定义SVG标记

  26. 26

    使用Google Maps的geoJson文件中的点的自定义标记

  27. 27

    Google Maps API v2自定义位置标记

  28. 28

    角形Google Maps自定义图标仅在标记更新时有效

  29. 29

    自定义标记Google Maps Street View Xcode用于文字叠加

热门标签

归档