在一个传单多边形对象中,有两个数组"_originalPoints"和"_parts",我想知道是否有人知道这两个数组的目的是什么.
谢谢,
我使用angular-leaflet-directive来显示填充了多个标记的地图,我有一个表,用户可以从中选择其中一个标记.我知道如何居中(在地图上显示)在表格中点击的一个标记,但我想打开标记的弹出消息.我知道我需要在地图上发出"点击"事件,但我不明白如何以"有角度的方式"进行.任何建议都将深表感谢.谢谢.
当应用程序启动时,我想将地图视图置于用户当前位置的中心位置.我尝试了两种不同的方法,无法让它们发挥作用.第一个在传单中正常工作,但在开发过程中我决定使用OL3.
第一种方法(在传单中工作):
var myProjectionName = "EPSG:25832";
proj4.defs(myProjectionName,
"+proj=utm +zone=32 +ellps=GRS80 +units=m +no_defs");
var centerPosition;
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
function (pos) {
centerPosition =
ol.proj.transform(
[position.coords.longitude,
position.coords.latitude],
'EPSG:4326',
myProjectionName);
},
function (err) {centerPosition = [724844,6178000];},
{
enableHighAccuracy: false,
timeout: 5000,
maximumAge: 1000
});
}
Run Code Online (Sandbox Code Playgroud)
我的第二种方法是使用ol.Geolocation类:
var proj1 = ol.proj.get(myProjectionName);
var geolocation = new ol.Geolocation({
projection: proj1
});
var centerPosition= geolocation.getPosition();
Run Code Online (Sandbox Code Playgroud)
中心位置用于创建视图/贴图对象:
var map = new ol.Map({
target: 'map',
logo : false,
layers: [ GSTGroup, OVLGroup, SheatLayer],
view: new ol.View({
projection: myProjectionName, …Run Code Online (Sandbox Code Playgroud) 我正在获取传单功能的中心以显示其标签.
然后,我在绑定标签时指定一个偏移量,使其显得更高,更直.
问题是我需要在entryJSON.getBounds().getCenter()代码中添加偏移量.
有没有办法在传单latlong对象中添加偏移量?(我可以想象像entryJSON.getBounds().getCenter().offset([ - 10,-57])之类的东西,但这不起作用......)
var marker = new L.marker(entryJSON.getBounds().getCenter(), { opacity: 0.01 });
marker.bindLabel('whatever here', {noHide: true, className: "info", offset: [-10, -57] });
Run Code Online (Sandbox Code Playgroud) 用户在文本字段中键入一些地址(Hyderabad,Telanagna)并单击Go按钮
我从google Map API获取latitude_res和经度,如下所示
$(document).on('click', '.gobtn', function(event) {
$.getJSON('https://maps.googleapis.com/maps/api/geocode/json?address=' + address + '', function(data) {
latitude_res = data.results[0].geometry.location.lat;
longitude_res = data.results[0].geometry.location.lng;
}).done(function() {
});
});
Run Code Online (Sandbox Code Playgroud)
我可以从google API中获取纬度和经度,例如我得到以下值
**17.385044
78.910965**
Run Code Online (Sandbox Code Playgroud)
然后我再次进行Ajax调用以获取我们数据库中此位置的所有标记.
最后初始化地图如下所示
initializeMap(lator,lonor,markers);
function initializeMap(lator, lonor, markers) {
var map = new L.Map('map_canvas', {
center: new L.LatLng(lator, lonor),
zoom: 5
});
var ggl = new L.Google();
var ggl2 = new L.Google('ROADMAP');
map.addLayer(ggl2);
if (markers.length > 0) {
var markers_leafcontainer = new L.MarkerClusterGroup();
var markersList = [];
for (var i = 0; …Run Code Online (Sandbox Code Playgroud) 我有一个问题,在我的传单地图中,我从多边形创建了一个三角形:
var polygon = L.polygon([
[parseFloat(decimal_lat),parseFloat(decimal_lon)],
[parseFloat(decimal_lat) + 1, parseFloat(decimal_lon) - 1],
[parseFloat(decimal_lat) + 1, parseFloat(decimal_lon) + 1] ],
{
color:'green'
});
polygon.addTo(map);
Run Code Online (Sandbox Code Playgroud)
我想旋转该多边形Point[decimal_lon, decimal_lat]。但是我无法解决。.
我创建了DEMO,在这里我要旋转多项式,而我想旋转我的三角形(多边形)以向您展示我的问题。
有点奇怪,我希望有人可以帮忙.
在传单中,一旦用户输入了lat/lng并向地图添加了一个点,我希望能够在该点周围添加10平方公里.
我试过四处寻找计算,找到方形x Km的角落,但没有挖出任何东西.但肯定有一种更简单的方法!
有人有想法吗?只要说L.polygon然后通过一个中心点和一个正方形大小就很可爱.
谢谢,
泰勒
我的传单地图中有一个搜索栏,我希望从搜索栏中选择时,地图会慢慢缩放并平移到标记.我可以让它变焦和平移,但不是慢.我想要的效果类似于您在Google地球中输入某个位置并且视图从一个位置"飞行"到下一个位置时的效果.这是我的代码,它缩放到我的位置但不慢.
controlSearch = new L.Control.Search({layer:listOfMarkers, propertyName: 'IntersectionName', circleLocation:true, position:'topleft'});
map.addControl(controlSearch)
controlSearch.on('search_locationfound', function(e){
map.setView(e.latlng,15, {animate:true, duration:10.0})
});
Run Code Online (Sandbox Code Playgroud)
我正在使用传单v0.7.7.
谢谢!
我正在使用以下JavaScript代码在地图上绘制多边形:
var map = L.map('map').setView([], 10);
L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=QA7i5Mpkd_m30IGElHziw', {
maxZoom: 18,
attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, ' +
'<a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
'Imagery © <a href="http://mapbox.com">Mapbox</a>',
id: 'mapbox.light'
}).addTo(map);
map.doubleClickZoom.disable();
// get color depending on population density value
function getColor(d) {
return d > 3000 ? '#006400' :
d > 2500 ? '#FFEDA0' :
d > 2000 ? '#FFEDA0' :
d > 1500 ? '#c8ff58' :
d > 50 ? '#FFEDA0' :
d > 20 ? '#6fdc6f' :
d …Run Code Online (Sandbox Code Playgroud) leaflet ×10
javascript ×4
polygon ×2
angularjs ×1
arrays ×1
leaflet.draw ×1
mapbox ×1
openlayers-3 ×1
proj4js ×1
rotation ×1