因此,按下按钮后, googlemaps api可以直接在新城市上重新显示地图,但我需要使用 MapBox中的自定义地图
强>对于一个项目。不幸的是,他们的文档没有帮助。
var map;
function initialize() {
map = new google.maps.Map(document.getElementById('map-canvas'), {
center: new google.maps.LatLng(48.1293954,11.556663), // Munich Germany
zoom: 10
});
}
function newLocation(newLat,newLng) {
map.setCenter({
lat : newLat,
lng : newLng
});
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
<script>
$(document).ready(function () {
$("#1").on('click', function () {
newLocation(48.1293954,11.556663);
});
$("#2").on('click', function () {
newLocation(40.7033127,-73.979681);
});
$("#3").on('click', function () {
newLocation(55.749792,37.632495);
});
});
&#13;
此代码来自其他帖子:How to change Google Map Center by clicking a button
我的问题是如何使用 mapbox.js 和传单api 执行此操作?我尝试的一切都失败了。
答案 0 :(得分:0)
我认为你应该改变:
public boolean onTouch(View v, MotionEvent event) {
int x = (int) event.getX();
int y = (int) event.getY();
int pixel = bitmap.getPixel(x, y);
int distanceRed = Math.abs(Color.red(pixel) - 255) + Math.abs(Color.blue(pixel) - 0) + Math.abs(Color.green(pixel) - 0);
if (distanceRed < RED_THESHOLD) {
Toast.makeText(getActivity(), "RED", Toast.LENGTH_LONG).show();
}
return false;//
}
为:
map.setCenter({
lat : newLat,
lng : newLng
});
答案 1 :(得分:0)
实际上,我想通了。您可以使用Leaflet的L.LatLng为坐标添加新的运算符。是.setView()函数让我失望。
var map;
function initialize() {
var coordinates = new L.LatLng(40.673859, -73.970114);
map = new L.mapbox.map('map')
.setView(coordinates, 12)
.addLayer(L.mapbox.tileLayer('myMapID'));
}
function newLocation(newLat,newLng,newZoom) {
var newCoord = new L.LatLng(newLat,newLng)
map.setView(newCoord, newZoom);
}
window.addEventListener('load',initialize,false);
$(document).ready(function() {
$("#1").on('click', function () {
newLocation(40.765172,-73.978844,12);
});
$("#2").on('click', function () {
newLocation(35,-75,4);
});
$("#3").on('click', function () {
newLocation(15,-75,4);
});
});
&#13;