OSMdroid地图源码

时间:2017-09-02 08:41:56

标签: javascript android osmdroid

我只有javascript文件显示osmdroid地图源,我用过

String [] OSMSource = new String [1];
OSMSource [0] =“https://gps.4u.uz:55443/styles/bright-v9/”;

我打开了这个地址,但那里什么也没有,但gps.4u.uz运作良好。

但我有空格,如果我使用其他来源,它可以工作。拜托,帮帮我搞错了。我的javascript文件只有重定向,它不是为我编写的。这就是为什么我很难解决这个问题。这是我的档案:

<div id="maptools"> Map tools (<span id="myposition"></span>)</div>
<div id="bigmap"></div>
<script>
var tailserver = 'https://gps.4u.uz:55443/styles/bright-v9/rendered/{z}/{x}/{y}.png';
//var tailserver = 'http://192.168.123.3:88/styles/bright-v9/rendered/{z}/{x}/{y}.png';
var maptarget = 'bigmap';
var firstloc = [69.279,41.2781];
var markerico = '/images/marker.png';
var companyhtml = '&copy; OOO "Technounit-Group", <a href="http://technounit.uz">http://technounit.uz</a>';

var fstLoc = ol.proj.transform( firstloc, 'EPSG:4326', 'EPSG:3857');
var trackFeature = new ol.Feature({
	geometry: new ol.geom.LineString([])
});
var myMarker = new ol.Feature({
	type: 'icon',
	geometry: new ol.geom.Point(fstLoc)
});
	
var styles = {
	'techno': new ol.style.Style({
		image: new ol.style.Icon({
			anchor: [0.5, 1],
			src: markerico
		}),
		stroke: new ol.style.Stroke({
			color: 'rgba(0,0,255,1.0)',
			width: 3,
			lineCap: 'round'
		})
    })
};

var vectorLayer = new ol.layer.Vector({
    source: new ol.source.Vector({
        features: [myMarker,trackFeature]
    }),
    style: styles["techno"]
});
	
var view = new ol.View({
	center: fstLoc,
    zoom: 15
});
var attribution = [new ol.Attribution({
    html: companyhtml
})];
//var rasterLayer = new ol.layer.Tile({
//	source: new ol.source.OSM()
//});
var rasterLayer = new ol.layer.Tile({
    source: new ol.source.XYZ({
		attributions: attribution,
		url: tailserver
	})
});
		  
var map = new ol.Map({
	target: maptarget,
	layers: [rasterLayer],
	view: view
});

function dotopos(lon,lat){
	//var newloc = ol.proj.fromLonLat([lon,lat]);
	//alert("To loc: "+lon+', '+lat);
	var newloc = ol.proj.transform([lon,lat], 'EPSG:4326', 'EPSG:3857');
	//alert("NewLoc: "+newloc);
	
	//trackFeature.getGeometry().appendCoordinate(newloc);
	
	view.setCenter(newloc);
	myMarker.setGeometry(new ol.geom.Point(newloc));
}
function dotoposicon(lon,lat){
	var newloc = ol.proj.transform([lon,lat], 'EPSG:4326', 'EPSG:3857');
	view.setCenter(newloc);
	myMarker.setGeometry(new ol.geom.Point(newloc));
}
function doRefresh(){
	//$(".coordsmsg").append('<font style="color:red; ">...</font>');
	
	$.ajax({  
		type: "POST",  
		url: "/track/coords.php",  
		data: "f=eventform",  
		success: function( res ){ 
		//alert(res);
			var gpsdata = jQuery.parseJSON( res );
			if( gpsdata.lon > 0 && gpsdata.lat> 0 ){
				$(".coordsmsg").text("New coords("+gpsdata.date+"): "+gpsdata.lon+', '+gpsdata.lat);
				var lon = parseFloat(gpsdata.lon);
				var lat = parseFloat(gpsdata.lat);
				//dotopos(lon,lat);
			}
			setTimeout('doRefresh()', 10000);
			
		} 
	});
}
//doRefresh();  
</script>

1 个答案:

答案 0 :(得分:3)

osmdroid,用于地图的android库,本身适用于Z / X / Y平铺坐标参考系统,与

相同
  • openstreetmaps.org
  • 谷歌地图(静态瓷砖)
  • Mapquest服务
  • mapbox
  • 某些USGS来源
  • 以及更多

大部分内容的网址格式几乎普遍,http://server:port/path/zoom/x/y.png

请参阅openstreetmap wiki,了解坐标的含义:http://wiki.openstreetmap.org/wiki/Slippy_Map

长话短说,使用osmdroid解决问题的最简单方法如下: mMapView.setTileSource(new XYTileSource( "bright-v9",0,22,256,"", new String[]{"https://gps.4u.uz:55443/styles/bright-v9/"} ));