如何根据坐标创建Google地图链接.他们的新基本共享网址包含很多参数,例如 -
有任何想法吗?不想嵌入,只是为了创建可以共享的外部链接.
我在一个窗口画了一条线,我让用户拖动它.所以,我的线由两点定义:(x1,y1)和(x2,y2).但是现在我想在我的线末端绘制"帽子",也就是说,在我的每个终点处都有短垂线.大写字母的长度应为N像素.
因此,为了在终点(x1,y1)绘制我的"帽"线,我需要找到形成垂直线的两个点,并且其每个点距离点(x1,y1)的N/2个像素.
那么你如何计算一个点(x3,y3),因为它需要与已知线的终点(x1,y1)保持垂直距离N/2,即由(x1,y1)定义的线和(x2,y2)?
我想得到一个简单的解决方案来计算一条线的角度(就像一个时钟的指针).
我有2分:
cX, cY - the center of the line.
eX, eY - the end of the line.
The result is angle (0 <= a < 360).
Run Code Online (Sandbox Code Playgroud)
哪个功能能够提供这个值?
我有以下信息:
存在一个具有原点(0,0,0)和半径R的球体.在进行射线球体交叉后,我知道球体上的三维空间中的一个点(XYZ)(三维空间中线条穿透的确切位置)球体船体).
对于我的程序,我想计算球体上XYZ点的纬度和经度,但我不能想(或谷歌)一种方法来轻松地做到这一点.
简而言之,我正在尝试编写的函数是:
public static LatLon FromVector3(Vector3 position, float sphereRadius)
{
return Latitude and Longitude
}
Run Code Online (Sandbox Code Playgroud)
有人知道怎么做这个吗?作为参考,这个Wiki SVG文件可能会有所帮助:

更新:
感谢所有有用的答案,所以最后我使用了这段代码:
public static LatLon FromVector3(Vector3 position, float sphereRadius)
{
float lat = (float)Math.Acos(position.Y / sphereRadius); //theta
float lon = (float)Math.Atan(position.X / position.Z); //phi
return new LatLon(lat, lon);
}
Run Code Online (Sandbox Code Playgroud)
现在我必须考虑哪个答案对我有最大的帮助:P.
似乎没有标准是否应使用经度,纬度或纬度,经度.WSG84和直接基于它的东西,似乎更喜欢Long,Lat.
"普通人"总是倾向于谈论Lat,Long - 所以我经常看到使用Lat,Long的代码或框架(例如谷歌地图)
这两种方式都有任何强烈的争论吗?
非常"简单"的问题:给定两个CLLocationCoordinate2Ds,如何从第一个到第二个获得方位(以弧度为单位)?我已经做了很多研究和研究,特别是一般问题和Objective-C/Cocoa Touch/iOS.
这是我的实现:
- (float) getHeadingForDirectionFromCoordinate:(CLLocationCoordinate2D)fromLoc toCoordinate:(CLLocationCoordinate2D)toLoc
{
float fLat = fromLoc.latitude;
float fLng = fromLoc.longitude;
float tLat = toLoc.latitude;
float tLng = toLoc.longitude;
return atan2(sin(fLng-tLng)*cos(tLat), cos(fLat)*sin(tLat)-sin(fLat)*cos(tLat)*cos(fLng-tLng));
}
Run Code Online (Sandbox Code Playgroud)
但是,这种方法并没有为我返回一致的结果.如果轴承接近正北或正南,看起来很好,但是,任何其他方向似乎都会返回不一致的数据,例如:
从50.405018,8.437500
至51.339802,12.403340
我的方法返回:5.918441弧度
应该是1.18660576弧度
(见http://www.movable-type.co.uk/scripts/latlong.html和http://www.movable-type.co.uk/scripts/latlong-map.html?lat1=50.405018&long1=8.437500 &lat2 = 51.339802&long2 = 12.403340)
我已经双重和三重检查公式是正确的.我也发现了一些像上面的例子一样的值,有些是正确的,有些是错的.我玩过各种模数或返回值的界限,也没有运气.
有任何想法吗?我的代码有问题吗?也许我误解了数学函数是如何工作的?
我一直在尝试在 Javascript 中创建这样的东西:
如您所见,容器可以被拖动、旋转和调整大小。大多数事情都可以正常工作,但是容器在旋转时调整大小会产生奇怪的输出。
我希望这会发生:
相反,我得到了这个:
这是完整的代码:
https://jsfiddle.net/c0krownz/
或者,
var box = document.getElementById("box");
var boxWrapper = document.getElementById("box-wrapper");
var initX, initY, mousePressX, mousePressY, initW, initH, initRotate;
function repositionElement(x, y) {
boxWrapper.style.left = x;
boxWrapper.style.top = y;
}
function resize(w, h) {
box.style.width = w + 'px';
box.style.height = h + 'px';
boxWrapper.style.width = w;
boxWrapper.style.height = h;
}
function getCurrentRotation(el) {
var st = window.getComputedStyle(el, null);
var tm = st.getPropertyValue("-webkit-transform") ||
st.getPropertyValue("-moz-transform") ||
st.getPropertyValue("-ms-transform") ||
st.getPropertyValue("-o-transform") ||
st.getPropertyValue("transform")
"none";
if (tm …Run Code Online (Sandbox Code Playgroud)我正在构建一个Web应用程序,它将根据按钮和单击事件在Google Map上动态突出显示某些美国州和加拿大省份.
计划A)多边形
我的主要想法是绘制多边形.为此我需要所有州和省轮廓的坐标列表(纬度+经度)(顺时针或逆时针).在政府网站上,我发现了各种不同的格式(即E00),但我无法将这些格式转换为简单的坐标列表,我可以用它来在地图上创建标记或多边形.你有什么提示可以获得这些坐标吗?
计划B)叠加
AFAIK,如果你在谷歌地图上使用叠加,当你进一步放大时它们会变得像素化(或者你可以叠加SVG吗?)在我的情况下,在最坏的情况下(所有州和所有省份)我需要50 + 11叠加.谷歌地图仍然可以实现这一点,还是会变得非常缓慢?
我有点吃惊的是,没有一种直接的方式来突出显示州或省,因为我认为这对于使用地图API的人来说是一项非常常见的任务.
提前致谢
我试图用R绘制我的坐标.我已经尝试过跟随不同的帖子(R:在世界地图上绘制分组坐标 ; 在R中的谷歌地图绘制多个点的坐标)但我的数据并没有太大成功.
我正在尝试使用我的gps坐标作为彩色圆点(每个区域为特定颜色)来获得世界的平面地图:
area lat long
Agullhas -38,31 40,96
Polar -57,59 76,51
Tasmanian -39,47 108,93
library(RgoogleMaps)
lat <- c(-38.31, -35.50) #define our map's ylim
lon <- c(40.96,37.50) #define our map's xlim
center = c(mean(lat), mean(lon)) #tell what point to center on
zoom <- 2 #zoom: 1 = furthest out (entire globe), larger numbers = closer in
terrmap <- GetMap(center=center, zoom=zoom, maptype= "satallite", destfile = "satallite.png")
Run Code Online (Sandbox Code Playgroud)
问题,现在我不知道如何添加我的点,我想为每个区域一种颜色.
谁能帮助我继续前进呢?
我尝试过的另一个选择是:
library(maps)
library(mapdata)
library(maptools)
map(database= "world", ylim=c(-38.31, -35.5), xlim=c(40.96, 37.5), …Run Code Online (Sandbox Code Playgroud) 我正试图从谷歌地图获取(指定)区域边界作为GMaps坐标(以形成折线).这有可能吗?(来自maps.google.com或我自己的域中的我自己的GMaps).
注意: 我知道您可以使用适合它的工具手动绘制/概述区域(例如http://www.birdtheme.org/useful/v3tool.html),但是大量覆盖大区域是一项繁重的工作.在这种情况下,自己动手的答案不是一个选项.