标签: polyline

确定给定折线与一组现有折线的近似重叠

我有一组折线(数字为100,每条折线有大约200-300个顶点).这些代表地图上的路线(如果有帮助,则全部来自Google Maps API).顶点是纬度/经度坐标.

我现在得到一个查询折线,我必须找到查询折线与任何现有折线的"重叠".因此,结果本身将是折线,按最大到最小重叠的顺序排序.我只需要前100个结果左右.另一个问题是重叠不一定是精确的,但可以是近似的(即,被认为是重叠的线段的部分不需要位于另一个上,而是仅需要彼此"接近").

为了给出具体的表示,在下图的左侧部分,蓝色折线(折线A)是数据库中的折线,红色折线(折线B)是查询折线.该算法应确定以粗黑标记的折线,如右图所示.

折线重叠问题描述

我目前倾向于使用空间数据库(正在考虑的选项是PostgreSQL + PostGIS),但我不确定延迟是否可以接受 - 查询需要立即返回结果.我的计算几何 - fu确实很弱,但我想知道:是否有任何现有的算法或方法可能对解决这个特定问题有用?

提前谢谢了!

algorithm google-maps postgis polyline computational-geometry

13
推荐指数
1
解决办法
1575
查看次数

如何在Google Maps V3上的每个折线段上绘制箭头

我正在寻找stackoverflow上的这个问题的解决方案,但由于我找不到准确的解决方案,我最终自己解决它并在此发布,希望它有所帮助.

Google地图为您提供折线功能,该功能基于坐标列表可以绘制一系列连接所有线条的线条.

您可以使用以下代码使用单个箭头绘制折线:

     var allCoordinates = [
        new google.maps.LatLng(26.291, 148.027),
        new google.maps.LatLng(26.291, 150.027),
        new google.maps.LatLng(22.291, 153.027),
        new google.maps.LatLng(18.291, 153.027)
    ];

     var polyline = new google.maps.Polyline({
            path: allCoordinates,
            strokeColor: color,
            strokeOpacity: 1.0,
            strokeWeight: 2,
            geodesic: true,
            icons: [{
                icon: {path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW},
                offset: '100%'
            }]
        });
Run Code Online (Sandbox Code Playgroud)

这里的问题是箭头将仅在最后一段中绘制,如下图所示,但有时路线可能不那么简单,我们需要在每个段上添加一个箭头.

图标定义中的"重复"属性可能是另一种选择,但只允许以像素为单位定义度量,并且definelty与折线上的每个方向变化都不匹配.

图片1

因此,我发现实现这一目的的一种方法是制作多条折线,每个线段允许一条线,在这种情况下允许在每条线上绘制箭头.这是代码:

     var allCoordinates = [
        new google.maps.LatLng(26.291, 148.027),
        new google.maps.LatLng(26.291, 150.027),
        new google.maps.LatLng(22.291, 153.027),
        new google.maps.LatLng(18.291, 153.027)
    ];

    for (var i = 0, n = allCoordinates.length; i < n; i++) {

        var coordinates = …
Run Code Online (Sandbox Code Playgroud)

javascript google-maps segment polyline google-maps-api-3

13
推荐指数
1
解决办法
1万
查看次数

如何检测折线上的单击

如果googlemap上有折线并且在地图上执行了点击,那么如何检查该点击是否在折线上或其他位置?

Polyline line = googleMap.addPolyline(new PolylineOptions()
       .add(new LatLng(51.2, 0.1), new LatLng(51.7, 0.3))
       .width(5)
       .color(Color.RED));

googleMap.setOnMapLongClickListener(new OnMapLongClickListener() {          

    }
});
Run Code Online (Sandbox Code Playgroud)

android google-maps polyline

12
推荐指数
3
解决办法
1万
查看次数

如何在Google地图(V3)中为我的折线创建方向箭头?

我的项目中有Google Maps Polylines的路线(例如http://rutasgdl.com/rutas/626-2),我想在路线上添加方向箭头.我想要这样的东西(遗憾的是,它适用于谷歌地图V2)http://wtp2.appspot.com/ArrowLine.htm

为了达到这个目的,你能指出我正确的方向吗?问候.

polyline google-maps-api-3

11
推荐指数
2
解决办法
2万
查看次数

使用Google Directions API地图查看绘制路线 - 解码折线

我正在尝试使用Google Directions API在我的mapview上显示路线,但我很难从JSON响应中获取数据.我可以获得"级别"和"点"字符串,但无法解决如何将它们解码到地图上的点.

任何帮助将非常感激.

android json google-maps polyline android-mapview

11
推荐指数
2
解决办法
1万
查看次数

如何在使用POLY LINE时在Google Map Javascript API中显示旅行方向箭头?

使用谷歌地图javascript API我想在多边形线上绘制箭头,所以当用户查看地图时,他会理解有人从这里到这里旅行.

现有功能

IMG

我想要这样的东西

IMG

请帮忙.

帮助将不胜感激.

javascript google-maps routes polyline

11
推荐指数
1
解决办法
2万
查看次数

谷歌地图:API 3,如何在中心设置折线

大家好我需要能够将折线中心放在地图的中心

只有代码的必要部分......

success: function(data) {//callback to be executed when the response has been received

    data = JSON.parse(data);
    for (var i=0;i<data.length;i++) {
        flightPlanCoordinates[i] = new google.maps.LatLng(data[i].x,data[i].y);
    }
    map = new google.maps.Map(document.getElementById("map_find"),
    mapOptions);
    flightPath = new google.maps.Polyline({
            path: flightPlanCoordinates,
            strokeColor: "#8a2be2",
            strokeOpacity: 1.0,
            strokeWeight: 3
    });

    flightPath.setMap(map);
    map.setZoom(5);
    map.setCenter(flightPlanCoordinates);
}
Run Code Online (Sandbox Code Playgroud)

这不是我需要的.我的地图不是居中而不是缩放,如何实现这一目标?

javascript google-maps center polyline google-maps-api-3

11
推荐指数
1
解决办法
9778
查看次数

检测Swift中的GMSPolyline?

我正在努力检测在我的谷歌地图上绘制的GMSPolyline上的水龙头,它与GMSpolygones一起工作得很好,但同样的方法似乎不适用于折线.我目前使用多边形的方法是:

if (GMSGeometryContainsLocation(coordinate, polygon.path!, false)) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

有关如何检测折线上的水龙头的任何建议吗?或者只是靠近它?

google-maps polygon polyline ios swift

11
推荐指数
1
解决办法
1727
查看次数

在Google Map中绘制ARC折线

如何在Google Map中绘制弧形折线?

我已经使用此代码创建了弯曲的折线.

以下是绘制弯曲折线的方法:

private void showCurvedPolyline (LatLng p1, LatLng p2, double k) {
    //Calculate distance and heading between two points
    double d = SphericalUtil.computeDistanceBetween(p1,p2);
    double h = SphericalUtil.computeHeading(p1, p2);

    //Midpoint position
    LatLng p = SphericalUtil.computeOffset(p1, d*0.5, h);

    //Apply some mathematics to calculate position of the circle center
    double x = (1-k*k)*d*0.5/(2*k);
    double r = (1+k*k)*d*0.5/(2*k);

    LatLng c = SphericalUtil.computeOffset(p, x, h + 90.0);

    //Polyline options
    PolylineOptions options = new PolylineOptions();
    List<PatternItem> pattern = …
Run Code Online (Sandbox Code Playgroud)

android google-maps polyline android-custom-view google-maps-android-api-2

11
推荐指数
2
解决办法
3634
查看次数

动态更改折线颜色

我有一个网络应用程序,将为每个用户绘制折线(跟踪运动),我想结合一些功能,允许网络应用程序用户通过更改折线的颜色"聚焦"某个用户.首先必须将所有折线更改为红色,然后将所选折线更改为蓝色.我认为最好避免专注于一行,然后尝试专注于另一行并让它们都是蓝色的.我真的不确定如何实现它,但我有功能,在按下名称时返回用户ID.我只需要迭代每个对象(每个用户的折线)首先将它们更改为红色,然后将特定的一个更改为蓝色.以下是一些代码.如果你能指出我正确的方向,我会很感激.谢谢.这是我的代码的精简版本,所以我希望它提供足够的信息.

function User(id) {
this.id = id;

this.locations = [];

this.mark = 0;

this.getId = function() {
    return this.id;
};

this.addLocation = function(latitude, longitude) {
    this.locations[this.locations.length] = new google.maps.LatLng(latitude, longitude);        
};
var polyline;
this.drawPolyline = function(loc) {
        polyline = new google.maps.Polyline({
        map: map,
        path: loc,
        strokeColor: "#FF0000",
        strokeOpacity: 1.0,
        strokeWeight: 2
        });
    polyline.setMap(map);
};

this.removePolyline = function() {
    if (polyline != undefined) {
        polyline.setMap(null);
        }
    }
this.get_user_info = function(user_id) {

var datastr = 'id=' + user_id;
$.ajax({    
    type: "POST",
    url: …
Run Code Online (Sandbox Code Playgroud)

javascript google-maps object polyline

10
推荐指数
1
解决办法
2万
查看次数