2a47d844 by chiangbt

标注更新

1 parent c3145696
1 package com.pashanhoo.landsurvey; 1 package com.pashanhoo.landsurvey;
2 2
3 import android.graphics.Color;
3 import android.support.v7.app.AppCompatActivity; 4 import android.support.v7.app.AppCompatActivity;
4 import android.os.Bundle; 5 import android.os.Bundle;
5 import android.util.Log; 6 import android.util.Log;
6 import android.widget.Toast; 7 import android.widget.Toast;
7 8
9 import com.esri.android.map.GraphicsLayer;
8 import com.esri.android.map.LocationDisplayManager; 10 import com.esri.android.map.LocationDisplayManager;
9 import com.esri.android.map.MapView; 11 import com.esri.android.map.MapView;
10 import com.esri.android.map.event.OnStatusChangedListener; 12 import com.esri.android.map.event.OnStatusChangedListener;
11 import com.esri.android.runtime.ArcGISRuntime; 13 import com.esri.android.runtime.ArcGISRuntime;
12 import com.esri.core.geometry.Point; 14 import com.esri.core.geometry.Point;
15 import com.esri.core.map.Graphic;
16 import com.esri.core.symbol.SimpleMarkerSymbol;
13 import com.pashanhoo.landsurvey.layers.baidu.BaiduMapLayerTypes; 17 import com.pashanhoo.landsurvey.layers.baidu.BaiduMapLayerTypes;
14 import com.pashanhoo.landsurvey.layers.baidu.BaiduMapsTiledServiceLayer; 18 import com.pashanhoo.landsurvey.layers.baidu.BaiduMapsTiledServiceLayer;
15 import com.pashanhoo.landsurvey.layers.google.GoogleMapsTiledServiceLayer; 19 import com.pashanhoo.landsurvey.layers.google.GoogleMapsTiledServiceLayer;
...@@ -20,6 +24,7 @@ import com.pashanhoo.landsurvey.utils.JZLocationConverter; ...@@ -20,6 +24,7 @@ import com.pashanhoo.landsurvey.utils.JZLocationConverter;
20 public class BaiduMapActivity extends AppCompatActivity { 24 public class BaiduMapActivity extends AppCompatActivity {
21 25
22 private MapView mapView; 26 private MapView mapView;
27 private GraphicsLayer graphicsLayer;
23 // GPS定位器对象 28 // GPS定位器对象
24 private LocationDisplayManager locationDisplayManager; 29 private LocationDisplayManager locationDisplayManager;
25 30
...@@ -37,23 +42,23 @@ public class BaiduMapActivity extends AppCompatActivity { ...@@ -37,23 +42,23 @@ public class BaiduMapActivity extends AppCompatActivity {
37 42
38 BaiduMapsTiledServiceLayer baiduMapsTiledServiceLayer = new BaiduMapsTiledServiceLayer(BaiduMapLayerTypes.BAIDU_VECTOR); 43 BaiduMapsTiledServiceLayer baiduMapsTiledServiceLayer = new BaiduMapsTiledServiceLayer(BaiduMapLayerTypes.BAIDU_VECTOR);
39 mapView.addLayer(baiduMapsTiledServiceLayer); 44 mapView.addLayer(baiduMapsTiledServiceLayer);
45 graphicsLayer = new GraphicsLayer();
46 mapView.addLayer(graphicsLayer);
47
48 final float offsetX = 2518238;
49 final float offsetY = 910065;
40 50
41 mapView.setOnStatusChangedListener(new OnStatusChangedListener() { 51 mapView.setOnStatusChangedListener(new OnStatusChangedListener() {
42 @Override 52 @Override
43 public void onStatusChanged(Object o, STATUS status) { 53 public void onStatusChanged(Object o, STATUS status) {
44 if(status == STATUS.INITIALIZED){ 54 if (status == STATUS.INITIALIZED) {
45 Point curPt = JZLocationConverter.wgs84ToGcj02(AppInfo.initPoint); 55 Point curPt = JZLocationConverter.wgs84ToBd09(new Point(121.540614, 29.872488));
46 Log.i("baidu", curPt.getX() + ":" + curPt.getY());
47 Point pt = GISHelper.lonLat2Mercator(curPt); 56 Point pt = GISHelper.lonLat2Mercator(curPt);
48 Log.i("baidu2", pt.getX()+":"+pt.getY()); 57 mapView.zoomToResolution(new Point(pt.getX() + offsetX, pt.getY() + offsetY), GoogleMapsTiledServiceLayer.getRes()[10]);
49 // mapView.zoomToResolution(pt, BaiduMapsTiledServiceLayer.getRes()[10]);
50
51 Toast.makeText(BaiduMapActivity.this,
52 mapView.getCenter().getX() + ":" + mapView.getCenter().getY(),
53 Toast.LENGTH_LONG).show();
54 58
55 mapView.zoomTo(pt, (float) 50.10); 59 SimpleMarkerSymbol sms = new SimpleMarkerSymbol(Color.RED, 15, SimpleMarkerSymbol.STYLE.CIRCLE);
56 // mapView.centerAndZoom(curPt.getY(), curPt.getX(), 6); 60 Graphic graphic = new Graphic(new Point(pt.getX() + offsetX, pt.getY() + offsetY), sms);
61 graphicsLayer.addGraphic(graphic);
57 } 62 }
58 } 63 }
59 }); 64 });
......
...@@ -2,7 +2,6 @@ package com.pashanhoo.landsurvey; ...@@ -2,7 +2,6 @@ package com.pashanhoo.landsurvey;
2 2
3 import android.location.Location; 3 import android.location.Location;
4 import android.location.LocationListener; 4 import android.location.LocationListener;
5 import android.os.Environment;
6 import android.support.design.widget.FloatingActionButton; 5 import android.support.design.widget.FloatingActionButton;
7 import android.support.v7.app.AppCompatActivity; 6 import android.support.v7.app.AppCompatActivity;
8 import android.os.Bundle; 7 import android.os.Bundle;
...@@ -13,13 +12,8 @@ import com.esri.android.map.LocationDisplayManager; ...@@ -13,13 +12,8 @@ import com.esri.android.map.LocationDisplayManager;
13 import com.esri.android.map.MapView; 12 import com.esri.android.map.MapView;
14 import com.esri.android.runtime.ArcGISRuntime; 13 import com.esri.android.runtime.ArcGISRuntime;
15 import com.esri.core.geometry.Point; 14 import com.esri.core.geometry.Point;
16 import com.pashanhoo.landsurvey.layers.baidu.BaiduMapLayerTypes;
17 import com.pashanhoo.landsurvey.layers.baidu.BaiduMapsTiledServiceLayer;
18 import com.pashanhoo.landsurvey.layers.gaode.GaodeMapLayerTypes; 15 import com.pashanhoo.landsurvey.layers.gaode.GaodeMapLayerTypes;
19 import com.pashanhoo.landsurvey.layers.gaode.GaodeMapsTiledServiceLayer; 16 import com.pashanhoo.landsurvey.layers.gaode.GaodeMapsTiledServiceLayer;
20 import com.pashanhoo.landsurvey.layers.geoq.GeoQMapLayerTypes;
21 import com.pashanhoo.landsurvey.layers.geoq.GeoQMapsTiledServiceLayer;
22 import com.pashanhoo.landsurvey.layers.google.GoogleMapLayerTypes;
23 import com.pashanhoo.landsurvey.layers.google.GoogleMapsTiledServiceLayer; 17 import com.pashanhoo.landsurvey.layers.google.GoogleMapsTiledServiceLayer;
24 import com.pashanhoo.landsurvey.layers.tencent.TencentMapLayerTypes; 18 import com.pashanhoo.landsurvey.layers.tencent.TencentMapLayerTypes;
25 import com.pashanhoo.landsurvey.layers.tencent.TencentMapsTiledServiceLayer; 19 import com.pashanhoo.landsurvey.layers.tencent.TencentMapsTiledServiceLayer;
......
...@@ -8,19 +8,15 @@ import android.util.Log; ...@@ -8,19 +8,15 @@ import android.util.Log;
8 import com.esri.android.map.TiledServiceLayer; 8 import com.esri.android.map.TiledServiceLayer;
9 import com.esri.android.map.event.OnStatusChangedListener; 9 import com.esri.android.map.event.OnStatusChangedListener;
10 import com.esri.core.geometry.Envelope; 10 import com.esri.core.geometry.Envelope;
11 import com.esri.core.geometry.GeometryEngine;
12 import com.esri.core.geometry.GeometryUtil;
13 import com.esri.core.geometry.Point; 11 import com.esri.core.geometry.Point;
14 import com.esri.core.geometry.SpatialReference; 12 import com.esri.core.geometry.SpatialReference;
15 import com.esri.core.internal.io.handler.ResponseListener; 13 import com.esri.core.internal.io.handler.ResponseListener;
16 import com.esri.core.internal.io.handler.a; 14 import com.esri.core.internal.io.handler.a;
17 import com.esri.core.io.UserCredentials; 15 import com.esri.core.io.UserCredentials;
18 import com.pashanhoo.landsurvey.layers.gaode.GaodeMapLayerTypes; 16 import com.pashanhoo.landsurvey.layers.tencent.TencentMapLayerTypes;
19 import com.pashanhoo.landsurvey.utils.AppInfo; 17 import com.pashanhoo.landsurvey.utils.AppInfo;
20 import com.pashanhoo.landsurvey.utils.GADBHelper; 18 import com.pashanhoo.landsurvey.utils.GADBHelper;
21 19
22 import java.util.Calendar;
23 import java.util.TimeZone;
24 import java.util.concurrent.RejectedExecutionException; 20 import java.util.concurrent.RejectedExecutionException;
25 21
26 /** 22 /**
...@@ -28,13 +24,12 @@ import java.util.concurrent.RejectedExecutionException; ...@@ -28,13 +24,12 @@ import java.util.concurrent.RejectedExecutionException;
28 */ 24 */
29 25
30 public class BaiduMapsTiledServiceLayer extends TiledServiceLayer { 26 public class BaiduMapsTiledServiceLayer extends TiledServiceLayer {
31 private static final double xmin = -20037508.3427892; 27 private static final double xmin = -22041257.773878;
32 private static final double ymin = -20037508.3427892; 28 private static final double ymin = -32673939.6727517;
33 private static final double xmax = 20037508.3427892; 29 private static final double xmax = 22041257.773878;
34 private static final double ymax = 20037508.3427892; 30 private static final double ymax = 20851350.0432886;
35 31
36 private static final double[] res = { 32 private static final double[] res = {156543.03392800014,
37 156543.03392800014,
38 78271.516963999937, 33 78271.516963999937,
39 39135.758482000092, 34 39135.758482000092,
40 19567.879240999919, 35 19567.879240999919,
...@@ -55,8 +50,7 @@ public class BaiduMapsTiledServiceLayer extends TiledServiceLayer { ...@@ -55,8 +50,7 @@ public class BaiduMapsTiledServiceLayer extends TiledServiceLayer {
55 0.59716428355981721, 50 0.59716428355981721,
56 0.29858214164761665}; 51 0.29858214164761665};
57 52
58 private static final double[] scale = { 53 private static final double[] scale = {591657527.591555,
59 591657527.591555,
60 295828763.79577702, 54 295828763.79577702,
61 147914381.89788899, 55 147914381.89788899,
62 73957190.948944002, 56 73957190.948944002,
...@@ -72,13 +66,13 @@ public class BaiduMapsTiledServiceLayer extends TiledServiceLayer { ...@@ -72,13 +66,13 @@ public class BaiduMapsTiledServiceLayer extends TiledServiceLayer {
72 72223.819286, 6111.909643, 66 72223.819286, 6111.909643,
73 18055.954822, 67 18055.954822,
74 9027.9774109999998, 68 9027.9774109999998,
75 4513.9887049999998, 69 4513.9887049999998
76 2256.994353, 70 , 2256.994353,
77 1128.4971760000001}; 71 1128.4971760000001};
78 72
79 private static String URL = "http://maps.iwxlh.com"; 73 private static String URL = "http://maps.iwxlh.com";
80 private ResponseListener responseListener; 74 private ResponseListener responseListener;
81 private static Point origin = new Point(-20037508.3427892, 20037508.3427892); 75 private static Point origin = new Point(-20037508.342787, 20037508.342787);
82 76
83 private BaiduMapLayerTypes baiduMapLayerTypes; 77 private BaiduMapLayerTypes baiduMapLayerTypes;
84 78
...@@ -135,33 +129,30 @@ public class BaiduMapsTiledServiceLayer extends TiledServiceLayer { ...@@ -135,33 +129,30 @@ public class BaiduMapsTiledServiceLayer extends TiledServiceLayer {
135 String url = ""; 129 String url = "";
136 String s = "Galil"; 130 String s = "Galil";
137 131
138 // int zoom = level - 1; 132 int offsetV = (int) (Math.pow(2, level - 1));
139 int offsetX = (int)Math.pow(2, level - 1);
140 // int offsetY = offsetX - 1;
141 int numX = col - offsetX;
142 int numY = offsetX - row - 1 ;
143 int zoom = level + 1;
144 int num = (col + row) % 8 + 1;
145 num = 2;
146 133
147 switch (baiduMapLayerTypes) { 134 switch (baiduMapLayerTypes) {
148 case BAIDU_VECTOR: 135 case BAIDU_VECTOR:
149 // url= "http://online" + num + ".map.bdimg.com/tile/?qt=tile&x="+numX+"&y="+numY+"&z="+level+"&styles=pl&scaler=1&udt=20141103"; 136 url = "http://online" + ((col + row) % 8 + 1) + ".map.bdimg.com/onlinelabel/?qt=tile"
150 url = "http://online" + num +".map.bdimg.com/tile/?qt=tile&x=" + numX + "&y=" + numY + "&z=" + zoom + "&styles=pl"; 137 + "&x=" + (col - offsetV) + "&y=" + (offsetV - row - 1) + "&z=" + (level + 1)
151 break; 138 + "&styles=pl";
152 case BAIDU_ROAD:
153 url = "http://online" + num +".map.bdimg.com/tile/?qt=tile&x=" + numX + "&y=" + numY + "&z=" + zoom + "&styles=sl";
154 break; 139 break;
155 case BAIDU_IMAGE: 140 case BAIDU_IMAGE:
156 url = "http://shangetu" + ((col + row) % 8 + 1) + ".map.bdimg.com/it/u=" 141 url = "http://shangetu" + ((col + row) % 8 + 1) + ".map.bdimg.com/it/u="
157 + "x=" + numX + ";y=" + numY+ ";z=" + zoom + ";v=009;type=sate&fm=46"; 142 + "x=" + (col - offsetV) + ";y=" + (offsetV - row - 1) + ";z=" + (level + 1)
143 + ";v=009;type=sate&fm=46";
144 break;
145 case BAIDU_ROAD:
146 url = "http://online" + ((col + row) % 8 + 1) + ".map.bdimg.com/onlinelabel/?qt=tile"
147 + "&x=" + (col - offsetV) + "&y=" + (offsetV - row - 1) + "&z=" + (level + 1)
148 + "&styles=sl";
158 break; 149 break;
159 case BAIDU_TRAFFIC: 150 case BAIDU_TRAFFIC:
160 url = "http://its.map.baidu.com:8002/traffic/TrafficTileService?" 151 url = "http://its.map.baidu.com:8002/traffic/TrafficTileService?"
161 + "level=" + zoom + "&x=" + numX + "&y=" + numY + "&time=" + System.currentTimeMillis(); 152 + "level=" + (level + 1) + "&x=" + (col - offsetV) + "&y=" + (offsetV - row - 1)
153 + "&time=" + System.currentTimeMillis();
162 break; 154 break;
163 } 155 }
164 Log.i("baidu", url);
165 try { 156 try {
166 // 首先从离线数据库中读取 157 // 首先从离线数据库中读取
167 result = getOfflineCacheDB(level, col, row); 158 result = getOfflineCacheDB(level, col, row);
......
...@@ -65,6 +65,15 @@ mapView.zoomToResolution(initPoint, t_vec.getRes()[16]); ...@@ -65,6 +65,15 @@ mapView.zoomToResolution(initPoint, t_vec.getRes()[16]);
65 ``` 65 ```
66 百度地图 66 百度地图
67 ```java 67 ```java
68 BaiduMapsTiledServiceLayer baiduMapsTiledServiceLayer = new BaiduMapsTiledServiceLayer(BaiduMapLayerTypes.BAIDU_VECTOR);
69 mapView.addLayer(baiduMapsTiledServiceLayer);
70
71 final float offsetX = 2518238;
72 final float offsetY = 910065;
73
74 Point curPt = JZLocationConverter.wgs84ToBd09(new Point(121.540614, 29.872488));
75 Point pt = GISHelper.lonLat2Mercator(curPt);
76 mapView.zoomToResolution(new Point(pt.getX() + offsetX, pt.getY() + offsetY), GoogleMapsTiledServiceLayer.getRes()[10]);
68 77
69 ``` 78 ```
70 79
......