标注更新
Showing
4 changed files
with
48 additions
and
49 deletions
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 | ... | ... |
-
Please register or sign in to post a comment