易网时代-编程资源站
Welcome
微信登录
编程资源
图片资源库
蚂蚁家优选
PDF转换器
首页
/
操作系统
/
Linux
/
Android自定义地图示例:QQ地图
来一个简单一些的自定义地图类型示例:QQ地图,QQ地图URL规则比较简单。1-17级都是有一层组成,选用GENERIC_MAPTYPE_5作为QQ地图类型,直接在CustomMap修改代码如下:
package
com.pstreets.gisengine.demo;
import
com.mapdigit.gis.raster.ICustomMapType;
import
com.mapdigit.gis.raster.MapType;
import
com.mapdigit.gis.geometry.GeoLatLng;
import
com.pstreets.gisengine.R;
import
com.pstreets.gisengine.SharedMapInstance;
import
Android.app.Activity;
import
android.os.Bundle;
import
android.view.Menu;
import
android.view.MenuInflater;
import
android.view.MenuItem;
public
class
CustomMap
extends
Activity {
@Override
public
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public
void
onStart() {
super
.onStart();
MapType.setCustomMapTileUrl(
new
TiandiMapType());
GeoLatLng center =
new
GeoLatLng(
32.0616667
,
118.7777778
);
SharedMapInstance.map.setCenter(center,
13
, MapType.GENERIC_MAPTYPE_5);
}
@Override
public
boolean
onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.mapzoom_menu, menu);
return
true
;
}
@Override
public
boolean
onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch
(item.getItemId()) {
case
R.id.zoomin:
SharedMapInstance.map.zoomIn();
return
true
;
case
R.id.zoomout:
SharedMapInstance.map.zoomOut();
return
true
;
default
:
return
super
.onOptionsItemSelected(item);
}
}
}
class
TiandiMapType
implements
ICustomMapType {
private
static
int
serverIndex=
1
;
public
String getTileURL(
int
mtype,
int
x,
int
y,
int
zoomLevel) {
String returnURL=
""
;
serverIndex+=
1
;
serverIndex%=
3
;
int
maxTiles=(
int
)Math.pow(
2
, zoomLevel);
switch
(mtype){
case
MapType.GENERIC_MAPTYPE_5:
returnURL=
"http://p"
+ serverIndex+
".map.qq.com/maptiles/"
;
y=maxTiles-y-
1
;
returnURL+=+zoomLevel
+
"/"
+(
int
)(x/
16
)+
"/"
+(
int
)(y/
16
)+
"/"
+x+
"_"
+y+
".gif"
;
break
;
case
MapType.GENERIC_MAPTYPE_6:
if
(zoomLevel<
11
){
returnURL=
"http://tile"
+ serverIndex+
".tianditu.com/DataServer?T=A0512_EMap"
;
returnURL+=
"&X="
+x+
"&Y="
+y+
"&L="
+zoomLevel;
}
else
if
(zoomLevel<
13
){
returnURL=
"http://tile"
+ serverIndex+
".tianditu.com/DataServer?T=B0627_EMap1112"
;
returnURL+=
"&X="
+x+
"&Y="
+y+
"&L="
+zoomLevel;
}
else
{
returnURL=
"http://tile"
+ serverIndex+
".tianditu.com/DataServer?T=siwei0608"
;
returnURL+=
"&X="
+x+
"&Y="
+y+
"&L="
+zoomLevel;
}
break
;
case
MapType.GENERIC_MAPTYPE_7:
if
(zoomLevel<
11
){
returnURL=
"http://tile"
+ serverIndex+
".tianditu.com/DataServer?T=AB0512_Anno"
;
returnURL+=
"&X="
+x+
"&Y="
+y+
"&L="
+zoomLevel;
}
else
{
returnURL=MapType.EMPTY_TILE_URL;
}
break
;
}
return
returnURL;
}
}
QQ地图的分片方法和Google中国地图分片方法一致,经纬度坐标无需调整。
收藏该网址
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图