按下按钮后如何重新定位mapbox js?

时间:2015-07-24 06:56:05

标签: javascript jquery google-maps mapbox

因此,按下按钮后, 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;
&#13;
&#13;

此代码来自其他帖子:How to change Google Map Center by clicking a button

我的问题是如何使用 mapbox.js 传单api 执行此操作?我尝试的一切都失败了。

2 个答案:

答案 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()函数让我失望。

&#13;
&#13;
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;
&#13;
&#13;