标签: maps

检测Android v2地图何时加载

我正在编写一个应用程序,当用户按下按钮时,该应用程序将在一个区域周围拍摄9张地图快照.

在循环中,使用它来移动和保存:

map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(mStartLat + (mMultiOffsetX + mWidth), mStartLng + (mMultiOffsetY + mHeight)), mZoom)); 
map.snapshot(this);
Run Code Online (Sandbox Code Playgroud)

并在onSnapshotReady中:

final String fileName = Environment.getExternalStorageDirectory().getAbsolutePath() + String.format("/test_maps/map_%f_%f.png", Double.valueOf(mStartLat + (mMultiOffsetX * mWidth)), Double.valueOf(mStartLng + (mMultiOffsetY * mHeight)));
FileOutputStream fos = new FileOutputStream(new File(fileName));
bmp.compress(CompressFormat.PNG, 0, fos);
Run Code Online (Sandbox Code Playgroud)

不幸的是,在拍摄快照时,地图偶尔会完成加载,因此您最终得到: 部分模糊的地图快照

那么,有没有办法在地图视图加载完成后检测或设置监听器?

maps android

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

在ggplot中的等值线图与具有孔的多边形

我试图绘制德国的等值线图,显示各州的贫困率(受这个问题的启发).

问题是,有些州(例如柏林)完全被其他州(勃兰登堡州)所包围,而且我很难让ggplot认出勃兰登堡的"洞".

此示例的数据在此处.

library(rgdal)
library(ggplot2)
library(RColorBrewer)

map <- readOGR(dsn=".", layer="germany3")
pov <- read.csv("gerpoverty.csv")

mrg.df <- data.frame(id=rownames(map@data),ID_1=map@data$ID_1)
mrg.df <- merge(mrg.df,pov, by="ID_1")
map.df <- fortify(map)
map.df <- merge(map.df,mrg.df[,c("id","poverty")], by="id")
ggplot(map.df, aes(x=long, y=lat, group=group)) +
  geom_polygon(aes(fill=poverty))+
  geom_path(colour="grey50")+
  scale_fill_gradientn(colours=brewer.pal(5,"OrRd"))+
  labs(x="",y="")+ theme_bw()+
  coord_fixed()
Run Code Online (Sandbox Code Playgroud)

请注意柏林和勃兰登堡(东北部)的颜色是如何相同的.他们不应该 - 柏林的贫困率远远低于勃兰登堡州.似乎ggplot正在渲染柏林多边形,然后在其上渲染勃兰登堡多边形,没有洞.

如果我geom_polygon(...)按照这里的建议改变呼叫,我可以修复柏林/勃兰登堡问题,但现在三个最北端的状态都被错误地渲染了.

ggplot(map.df, aes(x=long, y=lat, group=group)) +
  geom_polygon(aes(group=poverty, fill=poverty))+
  geom_path(colour="grey50")+
  scale_fill_gradientn(colours=brewer.pal(5,"OrRd"))+
  labs(x="",y="")+ theme_bw()+
  coord_fixed()
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么??

maps r ggplot2

15
推荐指数
2
解决办法
4908
查看次数

Android - 使用GoogleMaps API 2.0的SupportMapFragment提供IllegalArgumentException

我正在尝试使用为Android提供的最新Map API 2.0.我正在使用支持库,因为我想支持Android 2.2.以下是我的代码:

主要活动类

public class MainActivity extends FragmentActivity {

    public FragmentManager fManager ;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        fManager = getSupportFragmentManager();
        Button showMapButton = (Button) findViewById(R.id.showMapButton);
        showMapButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                loadMapFragment();
            }
        });
    }

    private void loadMapFragment() {
        MapPageFragment plotterFragment = new MapPageFragment();
        FragmentTransaction ft = fManager.beginTransaction();
        ft.replace(R.id.allFragmentsFrameLayout, plotterFragment);
        ft.addToBackStack(null);
        ft.commit();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

主活动布局文件

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" …
Run Code Online (Sandbox Code Playgroud)

maps android google-maps-api-2 android-fragments supportmapfragment

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

启动谷歌地图应用程序在Android中的驾驶方向

以下是我如何启动原生谷歌地图应用以显示我和目标位置之间的路线.

String url = "http://maps.google.com/maps?saddr="+currentLattitude+","+currentLongitude+"&daddr="+targetLat+","+targetLang;
Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(url));
intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

有没有办法启动原生地图应用程序来显示驾驶和运输模式?(目前仅展示行走方向)

maps android google-maps android-intent

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

leaflet.js - 单击时设置标记,拖动时更新位置

对于我正在进行的一个小项目,我需要能够在leaflet.js驱动的图像映射上放置一个标记并更新该标记的位置(如果它被拖动).我使用以下代码试试这个,但它失败了.我收到错误'标记未定义'.我不知道为什么它不起作用 - 也许你们可以帮助我?;)

function onMapClick(e) {
    gib_uni();
    marker = new L.marker(e.latlng, {id:uni, icon:redIcon, draggable:'true'};
    map.addLayer(marker);
};

marker.on('dragend', function(event){
    var marker = event.target;
    var position = marker.getLatLng();
    alert(position);
    marker.setLatLng([position],{id:uni,draggable:'true'}).bindPopup(position).update();
});
Run Code Online (Sandbox Code Playgroud)

javascript maps jquery marker leaflet

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

如何创建检测React-Native中自动位置的地图

我已经在react-native中创建了地图,参考https://github.com/lelandrichardson/react-native-maps 地图已创建,但我想使用gps检测自动位置.以下是使用静态纬度和经度渲染地图的代码.这是我更新的代码.但它仍然没有呈现完美的位置

getInitialState() {
    return {
        initialPosition: 'unknown',
        lastPosition: 'unknown',
    };
  },

  componentDidMount() {
    navigator.geolocation.getCurrentPosition(
      (position) => {
        var initialPosition = JSON.stringify(position);
        this.setState({initialPosition});
      },
      {enableHighAccuracy: true, timeout: 20000, maximumAge: 1000}
    );
    this.watchID = navigator.geolocation.watchPosition((position) => {
      var lastPosition = JSON.stringify(position);
      this.setState({lastPosition});
    });
  },

  componentWillUnmount() {
    navigator.geolocation.clearWatch(this.watchID);
  },

  render() {
    return (
      <View style={styles.container}>
        <MapView
          ref="map"
          mapType="terrain"
          style={styles.map}
          initialPosition={this.state.initialPosition}
          lastPosition={this.state.lastPosition}
        >
        </MapView>
      </View>
Run Code Online (Sandbox Code Playgroud)

你能纠正吗?

提前致谢

javascript maps gps android react-native

14
推荐指数
1
解决办法
9833
查看次数

如何将geom_sf生成的地图放在ggmap生成的栅格之上

我尝试了以下代码:

library(ggplot2)
library(ggmap)
library(sf)
nc <- st_read(system.file("shape/nc.shp", package = "sf"))
str(nc)

 Classes ‘sf’ and 'data.frame':  100 obs. of  15 variables:
 $ AREA     : num  0.114 0.061 0.143 0.07 0.153 0.097 0.062 0.091 0.118 0.124 ...
 $ PERIMETER: num  1.44 1.23 1.63 2.97 2.21 ...
 $ CNTY_    : num  1825 1827 1828 1831 1832 ...
 $ CNTY_ID  : num  1825 1827 1828 1831 1832 ...
 $ NAME     : Factor w/ 100 levels "Alamance","Alexander",..: 5 3 86 27 66 46 15 37 …
Run Code Online (Sandbox Code Playgroud)

maps r ggplot2 ggmap r-sf

14
推荐指数
2
解决办法
2835
查看次数

将Lat/Longs转换为X/Y坐标

我在墨尔本有一个小区域的Lat/Long值; -37.803134,145.132377以及我从openstreet地图(Osmarender Image)导出的平面图像.图像宽度:1018,高度:916

我希望能够使用C++将Lat/Long转换为X,Y坐标,其中点将反映位置.

我使用了我在网上找到的各种公式,如下所示,但没有任何帮助.

var y = ((-1 * lat) + 90) * (MAP_HEIGHT / 180);
var x = (lon + 180) * (MAP_WIDTH / 360);
Run Code Online (Sandbox Code Playgroud)

如果任何人给我清楚解释如何做到这一点将是非常有帮助的.任何代码将非常感激.

c++ maps coordinates coordinate-systems

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

Android - Google Maps API v2 - SupportMapFragment错误

我试图首次使用Google Maps API v2重新启动并运行我的某个应用.我在我的密钥库中为我的应用程序创建了一个密钥,提取了SHA1哈希,获取了一个API密钥,然后在应用程序中执行了以下操作...我包括:

谷歌播放,services.jar

以及导入GooglePlayServices库并将其添加为项目的参考.在我的Java代码中,我只需加载布局资源.

public class Times extends Activity{
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.map);
    }
}
Run Code Online (Sandbox Code Playgroud)

在我试图实例化的布局(res/layout/map.xml)中,我有:

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />
Run Code Online (Sandbox Code Playgroud)

我的清单中还声明了以下内容:

<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="tinyTech.us.ua.busschedule.permission.MAPS_RECEIVE" />

<permission
    android:name="tinyTech.us.ua.busschedule.permission.MAPS_RECEIVE"
    android:protectionLevel="signature" />

<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true" />
Run Code Online (Sandbox Code Playgroud)

并在清单的Application标签中声明:

<meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="My_API_Key" />
Run Code Online (Sandbox Code Playgroud)

加载活动时,它会在LogCat中因以下错误而崩溃:

FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable
    at com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

我试图研究这个问题,但是我无法找到我想要的东西.非常感谢任何和所有的帮助.

maps android google-maps google-api android-fragments

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

leaflet.js地图没有显示出来

我是新手leaflet.js.有人可以帮我调试以下代码吗?我试图在屏幕上显示地图,但只有放大和缩小按钮显示在Google Chrome上,地图屏幕显示为空.

<!DOCTYPE html>
<html lang="en">
    <head>
        <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet/v0.7.7/leaflet.css" />
        <style>
            #mapid { height: 180px; }
        </style>
    </head>

    <body>
        <div id="mapid"></div>
        <script src="http://cdn.leafletjs.com/leaflet/v0.7.7/leaflet.js"></script>
        <script>
            var mymap = L.map('mapid').setView([51.505, -0.09], 13);
        </script>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

maps leaflet dc.leaflet.js

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