我已经获得了一些编码折线以显示在谷歌地图上.然而,我正在使用JQuery进行许多前端功能,现在我正试图找到使用JQuery显示编码折线的正确语法.添加编码折线的标准语法是
var polyline = new GPolyline.fromEncoded({
color: "#0000ff",
weight: 4,
opacity: 0.8,
points: "_gkxEv}|vNM]kB}B}@q@YKg@IqCGa@EcA?c",
levels: "P@B@D??@@?D?CA?B",
zoomFactor: 2,
numLevels: 18
});
map.addOverlay(polyline);
Run Code Online (Sandbox Code Playgroud)
显然这不适用于JQuery.使用您使用的JQuery添加普通折线
new google.maps.Polyline({
path: stationPathCoordinates1,
strokeColor: "#20B5B3",
strokeOpacity: 1.0,
strokeWeight: 4
Run Code Online (Sandbox Code Playgroud)
其中StationPathCoordinates是long和lats的数组.我现在在编码折线中有这个数组.我认为它可能是新的google.maps.Polyline.fromEncoded但这不起作用.任何人都知道JQuery中的语法,或者甚至可能吗?
提前致谢
有谁知道如何在谷歌地图v3中获得折线的长度?目前我正在使用Haversine公式,但如果折线符合开始,那么它会计算出最短的长度.有谁知道我怎么能计算折线长度?
非常感谢.标记
在R中,使用maps包和gcIntermediate函数,如何在两个国家/地区之间绘制线条?它需要lat-long,但我不确定我应该为各国提供什么样的长期(比如我想在美国和瑞典之间画一条线)
使用Hadley的伟大的ggplot2和他的书(第78-79页),我能够轻松地生成单个等值区域图,使用如下代码:
states.df <- map_data("state")
states.df = subset(states.df,group!=8) # get rid of DC
states.df$st <- state.abb[match(states.df$region,tolower(state.name))] # attach state abbreviations
states.df$value = value[states.df$st]
p = qplot(long, lat, data = states.df, group = group, fill = value, geom = "polygon", xlab="", ylab="", main=main) + opts(axis.text.y=theme_blank(), axis.text.x=theme_blank(), axis.ticks = theme_blank()) + scale_fill_continuous (name)
p2 = p + geom_path(data=states.df, color = "white", alpha = 0.4, fill = NA) + coord_map(project="polyconic")
Run Code Online (Sandbox Code Playgroud)
其中"值"是我正在绘制的州级数据的向量.但是如果我想绘制多个地图,按一些变量(或两个)分组呢?
以下是安德鲁·格尔曼(Andrew Gelman)后来在纽约时报改编的关于美国各地卫生保健意见的情节的一个例子:

我希望能够效仿这个例子:根据两个变量(甚至一个变量)显示网格化的等值线图.所以我不传递值的向量,而是传递一个"long"的数据帧,每个状态有多个条目.
我知道ggplot2可以做到这一点,但我不确定如何.谢谢!
我正在开发一个确定osm地图中用户位置的android应用程序.我能够在地图上显示用户位置,但如果位置改变整个地图重新加载,那有什么问题?另外我如何才能提高用户位置的准确性?如何根据准确度制作一个增加和减少的圆圈(如Google中所示)?
代码:
public class OsmDemoActivity extends Activity implements LocationListener,
MapViewConstants
{
private MapView mMapView;
private MapController mapController;
private LocationManager mLocMgr;
private ItemizedOverlay<OverlayItem> mMyLocationOverlay;
private ResourceProxy mResourceProxy;
ArrayList<OverlayItem> items;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
mResourceProxy = new DefaultResourceProxyImpl(getApplicationContext());
setContentView(R.layout.main);
//mMapView.setUseDataConnection(false);
initilaizeMap();
//addOverlay();
mLocMgr = (LocationManager) getSystemService(LOCATION_SERVICE);
mLocMgr.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
}
public void initilaizeMap()
{
mMapView = (MapView) this.findViewById(R.id.mapView);
mMapView.setTileSource(TileSourceFactory.MAPNIK);
//mMapView.setUseDataConnection(false);
mMapView.setBuiltInZoomControls(true);
mMapView.setMultiTouchControls(true);
mapController = this.mMapView.getController();
mapController.setZoom(15);
mapController.setCenter(new GeoPoint(15.610762,32.540345));
/*
final MyLocationOverlay myLocationOverlay = new MyLocationOverlay(this, mMapView,
mResourceProxy);
myLocationOverlay.enableMyLocation(); …Run Code Online (Sandbox Code Playgroud) 我使用传单创建一个照片地图,我自己的瓷砖,按预期工作.
我试图弄清楚如何阻止缩放遵循这个四叉树类型模式:
我希望能够放大25%或100px的增量.
100px增量的示例:
问题: 这样做的逻辑是什么?如果可能的话?
我想要这样做的原因是我的照片地图(不像普通地图那样包裹)可以更具响应性并且很好地适应用户的屏幕尺寸.
我在这里可以看到我的问题
我的目的是从ios应用程序打开地图应用程序和方向,我能够打开地图应用程序,但它没有显示方向,我已编写如下代码
NSString *mystr=[[NSString alloc] initWithFormat:@"http://maps.apple.com/maps?saddr=Current+Location&daddr=Newyork"];
NSURL *myurl=[[NSURL alloc] initWithString:mystr];
[[UIApplication sharedApplication] openURL:myurl];
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我解释如何将参数传递给这个网址和其他任何一个?
如何计算经度和纬度坐标以在用户位置周围创建1英里半径?我不介意它需要多少个坐标,但是我想在一个位置周围创建一个圆形半径.
例如:
如果用户的位置是=
Latitude: 44.947 Longitude: -93.098
Run Code Online (Sandbox Code Playgroud)
然后,我如何确定8组经度和纬度坐标在上述位置周围创建1英里半径.
(上面例子中的8是斜体,因为我不介意它是否小于或大于8)
我该怎么做呢?
代码到目前为止:
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
double longitude = location.getLongitude();
double latitude = location.getLatitude();
Run Code Online (Sandbox Code Playgroud)
虽然我很高兴人们正在努力帮助,但下面给出的答案并没有回答这个问题.
我正试图将地图绘制限制在特定区域. 因为后者弄乱了多边形,所以coord_map 优先选择scale_x_continuous和y等价.但在这里我发现它因某种原因失败了.这是我的代码(下载一个57kb的shapefile):
require(maptools)
require(ggplot2)
download.file('https://dl.dropboxusercontent.com/u/46043231/UK.zip', "uk.zip", method="internal", mode="wb")
unzip('uk.zip')
uk = readShapePoly('uk_outline_1000m.shp')
print(bbox(uk))
min max
x 259.9625 655566.4
y 7211.7025 1218558.9
uk2 = fortify(uk)
(p = ggplot(uk2, aes(x=long, y=lat, group=group)) + geom_polygon() + coord_equal())
Run Code Online (Sandbox Code Playgroud)

但是当coord_map使用时,情节消失了:
p + coord_map(xlim=c(0, 630000), ylim=c(0, 1000000))
Run Code Online (Sandbox Code Playgroud)

知道发生了什么事吗?
我试图在谷歌地图上实现循环雷达动画.该网站:http://mesonet.agron.iastate.edu/ogc/ 提供从当前时间到60分钟前的雷达图像.
目前,我正在加载这些图像并使用计时器将每个图像添加/删除到地图.这在技术上有效,但结果非常不稳定.有可观的时间地图上没有雷达图像可见.降低超时仅会使效果恶化,因为雷达图像在移除之前没有足够的时间加载.
有没有什么技术可以平滑动画?或者我这样做是错的?
码
var map;
var imageArray = [];
function initialize() {
var mapOptions = {
zoom: 5,
center: new google.maps.LatLng(42.5, -95.5),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
//Load Images and add them to imageArray
tileNEX = new google.maps.ImageMapType({
getTileUrl: function(tile, zoom) {
return "http://mesonet.agron.iastate.edu/cache/tile.py/1.0.0/nexrad-n0q-900913/" + zoom + "/" + tile.x + "/" + tile.y +".png?"+ (new Date()).getTime();
},
tileSize: new google.maps.Size(256, 256),
opacity:0.60,
name : 'NEXRAD',
isPng: true,
});
imageArray.push(tileNEX);
tileNEX5 = …Run Code Online (Sandbox Code Playgroud) maps ×10
r ×3
android ×2
ggplot2 ×2
google-maps ×2
apple-maps ×1
coordinates ×1
direction ×1
ios ×1
iphone ×1
java ×1
javascript ×1
jquery ×1
jquery-ui ×1
leaflet ×1
location ×1
osmdroid ×1
polyline ×1
zooming ×1