【问题标题】:Google Maps JS API - extend a circleGoogle Maps JS API - 扩展一个圆圈
【发布时间】:2017-06-02 17:26:07
【问题描述】:

允许用户在地图上画一个圆圈,然后你可以添加标记 - 如果标记在圆圈之外,那么应该放大圆圈以将标记放在里面。

我在文档中找不到任何内容:

有没有可能像:UserCircle.extend(event.overlay.location); 而事件覆盖是标记。

我也尝试自己制作这个功能 - 但我卡在了半径上。 是哪个单位?如何将其转换为度数?

有什么想法吗?

【问题讨论】:

标签: javascript maps geometry geo


【解决方案1】:

这就是我现在做的......

function extendRegion(marker, drawing){
    marker_lat = marker.getPosition().lat();
    marker_lng = marker.getPosition().lng();
    if(drawing.type == google.maps.drawing.OverlayType.CIRCLE){
        var path = [marker.getPosition(), drawing.overlay.getCenter()];
        var length = google.maps.geometry.spherical.computeDistanceBetween(path[0], path[1]);

        if(length>drawing.overlay.getRadius()){
            consloe.log('The Marker was outside the drawing, it is extended now.');
            drawing.overlay.setRadius(length);
        }
    }
    else if(drawing.type == google.maps.drawing.OverlayType.RECTANGLE){
        ne_lat = drawing.overlay.getBounds().getNorthEast().lat();
        ne_lng = drawing.overlay.getBounds().getNorthEast().lng();
        sw_lat = drawing.overlay.getBounds().getSouthWest().lat();
        sw_lng = drawing.overlay.getBounds().getSouthWest().lng();

        var error=0;
        if(marker_lat<sw_lat){
            sw_lat = marker_lat;
            error=1;
        }
        if(marker_lat>ne_lat){
            ne_lat = marker_lat;
            error=1;
        }
        if(marker_lng<sw_lng){
            sw_lng = marker_lng;
            error=1;
        }
        if(marker_lng>ne_lng){
            ne_lng = marker_lng;
            error=1;
        }

        if(error) {
            console.log('The Marker was outside the drawing, it is extended now.');
            drawing.overlay.setBounds({north: ne_lat, south: sw_lat, east: ne_lng, west: sw_lng});
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-23
    • 2011-07-29
    • 2013-02-19
    • 1970-01-01
    • 1970-01-01
    • 2013-12-21
    • 2013-12-26
    • 1970-01-01
    相关资源
    最近更新 更多