每x Km方向添加里程碑(标记) [英] Add milestones (markers) every x Km on direction
问题描述
我想在谷歌地图API给出的方向的多段线上每5或10公里添加一个标记。
是这样的:
http: //www.geocodezip.com/v3_polyline_example_kmmarkers_0.html
但是用google的方向
我发现了一个像魅力一样的公式。它每隔8米就会在给定点之间添加一个标记。
我从这里得到公式:如何计算两个给定点和给定距离之间的点?
PointF pointA,pointB;
var diff_X = pointB.X - pointA.X;
var diff_Y = pointB.Y - pointA.Y;
int pointNum = 8;
var interval_X = diff_X /(pointNum + 1);
var interval_Y = diff_Y /(pointNum + 1);
列表< PointF> pointList = new List< PointF>();
for(int i = 1; i <= pointNum; i ++)
{
pointList.Add(new PointF(pointA.X + interval_X * i,pointA.Y + interval_Y * i ));
}
Android
我的最终结果翻译
// GeoPoint PointF,pointA,pointB;
Double diff_X = lat2 - lat1;
Double diff_Y = lon2 - lon1;
int pointNum = 8;
Double interval_X = diff_X /(pointNum + 1);
Double interval_Y = diff_Y /(pointNum + 1);
// ArrayList< GeoPoint> geoPoints = new ArrayList<>();
列表< GeoPoint> pointList = new ArrayList<>();
for(int i = 1; i <= pointNum; i ++)
{
GeoPoint g = new GeoPoint(lat1 + interval_X * i,lon1 + interval_Y * i);
pointList.add(g);
itemizedLayer.addItem(createMarkerItem(g,R.drawable.ic_my_location));
}
map.map()。updateMap(true);
I want to add a marker every 5 or 10 Kilometer on the polylines of the direction given by google maps api. something like this :
http://www.geocodezip.com/v3_polyline_example_kmmarkers_0.html
but with the google direction's
I found a formula that works like a charm. It adds a marker every 8 meter between to given points.
I got the formula from here: How to calculate the points between two given points and given distance?
PointF pointA, pointB;
var diff_X = pointB.X - pointA.X;
var diff_Y = pointB.Y - pointA.Y;
int pointNum = 8;
var interval_X = diff_X / (pointNum + 1);
var interval_Y = diff_Y / (pointNum + 1);
List<PointF> pointList = new List<PointF>();
for (int i = 1; i <= pointNum; i++)
{
pointList.Add(new PointF(pointA.X + interval_X * i, pointA.Y + interval_Y*i));
}
Android My end result translation
//GeoPoint PointF, pointA, pointB;
Double diff_X = lat2 - lat1;
Double diff_Y = lon2 - lon1;
int pointNum = 8;
Double interval_X = diff_X / (pointNum + 1);
Double interval_Y = diff_Y / (pointNum + 1);
//ArrayList<GeoPoint> geoPoints = new ArrayList<>();
List<GeoPoint> pointList = new ArrayList<>();
for (int i = 1; i <= pointNum; i++)
{
GeoPoint g = new GeoPoint(lat1 + interval_X * i, lon1 + interval_Y*i);
pointList.add(g);
itemizedLayer.addItem(createMarkerItem(g, R.drawable.ic_my_location));
}
map.map().updateMap(true);
这篇关于每x Km方向添加里程碑(标记)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!