我有一个墨卡托投影图作为JPEG,我想知道如何将给定的x,y坐标与其纬度和经度相关联.我看过Gudermannian函数,但老实说我不明白如何使用该函数并应用它.即,它期待什么输入?我发现的实现(JavaScript)似乎在-PI和PI之间取得了一个范围,但是我的y值(以像素为单位)与该范围之间的相关性是什么?
此外,我发现这个功能需要一个纬度并返回谷歌地图的瓷砖,谷歌地图也使用墨卡托.似乎如果我知道如何反转这个功能,我会非常接近我的答案.
/*<summary>Get the vertical tile number from a latitude
using Mercator projection formula</summary>*/
private int getMercatorLatitude(double lati)
{
double maxlat = Math.PI;
double lat = lati;
if (lat > 90) lat = lat - 180;
if (lat < -90) lat = lat + 180;
// conversion degre=>radians
double phi = Math.PI * lat / 180;
double res;
//double temp = Math.Tan(Math.PI / 4 - phi / 2);
//res = Math.Log(temp);
res = 0.5 * Math.Log((1 + Math.Sin(phi)) / (1 …Run Code Online (Sandbox Code Playgroud) 有没有办法通过REST访问Bing Maps API以从地址获取地理编码信息?这对谷歌和雅虎来说是微不足道的; 我正在寻找的是来自雅虎的这样的功能:
http://developer.yahoo.com/maps/rest/V1/geocode.html
(具体来说,请参阅该页面上的示例请求URL,但也可以想象具有简单"location"参数的URL,而不是单独的street,city,state和zip参数.)
我已经找到了通过REST使用Bing API的其他部分的示例,但没有任何内容可以访问Maps API,或者特别是地理编码功能.
我将一些数据插入Java Hashtable.如果我从Hashtable读取数据,它的返回顺序与我插入的顺序不同.如何从Hashtable获取有序数据?
我使用以下代码从哈希表中获取值:
// Get a set of the entries
Set set = hsUpdateValues.entrySet();
// Get an iterator
Iterator i = set.iterator();
// Display elements
while (i.hasNext()) {
Map.Entry me = (Map.Entry) i.next();
System.out.print(
"Key : " + me.getKey()
+ ", Value: " + me.getValue()
);
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试构建一个应用程序,可以使用存储在应用程序中的图像显示地图,具有Google地图的大部分功能,但使用此自定义图像而无需连接以获取地图图块.我正在寻找的主要方法是显示一个图像,用户可以在其中进行缩放,拖动以移动并单击叠加.我还将尝试根据纬度/经度坐标向地图添加叠加并显示用户的位置,但这不应该太难,因为我可以在地图上定义一个纬度/经度点并计算其中的所有其他点.有谁知道我可以用来显示这样的地图吗?
使用信息块插件时,如何创建具有不同内容的多个标记http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/examples/infobox-basic.html
我正在创建var marker1,var marker2等,但我认为这不是一个非常好的方法,我在所有infowindows中都有相同的内容...
我正在为Web应用程序制作区域绘图工具,我使用标记作为锚点,用户可以使用它来更改多边形的形状.
这就是我到目前为止所拥有的.http://demos.nodeline.com/leaflet_development/
回购邮件是https://github.com/SpencerCooley/Leaflet_development
$(document).ready(function(){
var map, cloudmade, sanAntonio, polygonPoints
map = new L.Map('map');
cloudmade = new L.TileLayer('http://{s}.tile.cloudmade.com/d4334cd6077140e3b92ccfae2b363070/997/256/{z}/{x}/{y}.png', {
attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://cloudmade.com">CloudMade</a>',
maxZoom: 18
});
sanAntonio = new L.LatLng(29.4238889, -98.4933333); // geographical point (longitude and latitude)
map.setView(sanAntonio, 13).addLayer(cloudmade);
polygonPoints = [];
var polygon = new L.Polygon(polygonPoints);
map.addLayer(polygon);
map.on('click', function(e) {
var marker = new L.Marker(e.latlng, {draggable:true});
polygonPoints.push(e.latlng);
var markerId = polygonPoints.length -1
map.addLayer(marker);
polygon.setLatLngs(polygonPoints);
marker.on('drag', function(){
var locationWhileDrag = …Run Code Online (Sandbox Code Playgroud) library(maps)
1> map.where(database="world",29.392089,53.592505)
[1] "USSR"
Run Code Online (Sandbox Code Playgroud)
有谁知道如何获得更新的世界地图数据库来在地图包中驱动这个功能?我现在只需要国名,而不是详细的地方行政信息,例如gadm.org提供的信息.
我目前正在使用地图,每10米我使用LocationListener来刷新我的位置并获得新的纬度和经度.现在我希望用户正在使用的路线将显示为红线.因此,每次调用LocationListener类的OnLocationChange()时,我都想用最后一个位置和新位置之间的一行更新地图.
到目前为止,我添加了以下内容:
private void initializeDraw() {
lineOptions = new PolylineOptions().width(5).color(Color.RED);
lineRoute = workoutMap.addPolyline(lineOptions);
}
Run Code Online (Sandbox Code Playgroud)
在OnLocationChanged期间我称之为:
drawTrail();
Run Code Online (Sandbox Code Playgroud)
现在应该插入到这个函数中,以便每次将新获得的位置作为一个点添加并从最后一个点到新点绘制一条线.
谢谢
使用地图我有一个活动,当没有可用的连接时启动,并使用离线地图(MapQuest).活动运行正常,显示地图,以及所有叠加,标记等.当用户点击其中一个标记信息窗口时,将启动另一个活动,此时我在日志中收到一堆红色错误消息,但应用程序不会崩溃.这些消息(init在标题中)似乎谈论了ZoomButtons和触摸事件.对于代码中的ZoomButtons或触摸事件(多点触控),只有两行:
map.setBuiltInZoomControls(true);
map.setMultiTouchControls(true);
Run Code Online (Sandbox Code Playgroud)
而不是任何对话......
如果我写:
map.setBuiltInZoomControls(假); map.setMultiTouchControls(假);
红色错误消息消失但当然用户无法以任何方式放大或缩小...
由于错误(带有"true"参数)仅在启动另一个活动时发生,我认为我必须在pause()上添加一些内容,即:
onPause(){
map.setBuiltInZoomControls(false);
map.setMultiTouchControls(false);
super.OnPause();
}
Run Code Online (Sandbox Code Playgroud)
----但这样做并没有改变任何东西......任何提示??? - 提前致谢!
我正在尝试绘制具有正值和负值的地图.
所有正值都应该是红色,而负值应该是蓝色,零应该是白色,就像这个带有离散颜色的样本图一样
以下是我正在使用的代码:
library (rasterVis)
ras1 <- raster(nrow=10,ncol=10)
set.seed(1)
ras1[] <- rchisq(df=10,n=10*10)
ras2=ras1*(-1)/2
s <- stack(ras1,ras2)
levelplot(s,par.settings=RdBuTheme())
Run Code Online (Sandbox Code Playgroud)
非常感谢您提供可以应用于其他绘图练习的通用解决方案.