- Posts: 15
- Thank you received: 0
Как в функции прописать ссылку до папки?
- epol_pers
- Topic Author
- Offline
- New Member
Less
More
6 years 11 months ago - 6 years 11 months ago #11362
by epol_pers
Как в функции прописать ссылку до папки? was created by epol_pers
Как именно прописать ссылку на папку с тайлами в фукции?
function getNormalizedCoord(coord, zoom) {
if (!repeatOnXAxis) return coord;
var y = coord.y;
var x = coord.x;
// tile range in one direction range is dependent on zoom level
// 0 = 1 tile, 1 = 2 tiles, 2 = 4 tiles, 3 = 8 tiles, etc
var tileRange = 1 << zoom;
// don't repeat across Y-axis (vertically)
if (y < 0 || y >= tileRange) {
return null;
}
// repeat across X-axis
if (x < 0 || x >= tileRange) {
x = (x % tileRange + tileRange) % tileRange;
}
return {
x: x,
y: y
};
}
/*
* Main Core
*
*/
window.onload = function() {
// Define our custom map type
var customMapType = new google.maps.ImageMapType({
getTileUrl: function(coord, zoom) {
var normalizedCoord = getNormalizedCoord(coord, zoom);
if(normalizedCoord && (normalizedCoord.x < Math.pow(2, zoom)) && (normalizedCoord.x > -1) && (normalizedCoord.y < Math.pow(2, zoom)) && (normalizedCoord.y > -1)) {
return zoom + '_' + normalizedCoord.x + '_' + normalizedCoord.y + '.jpg';
} else {
return 'empty.jpg';
}
},
tileSize: new google.maps.Size(256, 256),
maxZoom: 6,
name: 'PS_Bramus.GoogleMapsTileCutter'
});
// Basic options for our map
var myOptions = {
center: new google.maps.LatLng(0, 0),
zoom: 2,
minZoom: 0,
streetViewControl: false,
mapTypeControl: false,
mapTypeControlOptions: {
mapTypeIds: ["custom"]
}
};
// Init the map and hook our custom map type to it
var map = new google.maps.Map(document.getElementById('map'), myOptions);
map.mapTypes.set('custom', customMapType);
map.setMapTypeId('custom');
}
function getNormalizedCoord(coord, zoom) {
if (!repeatOnXAxis) return coord;
var y = coord.y;
var x = coord.x;
// tile range in one direction range is dependent on zoom level
// 0 = 1 tile, 1 = 2 tiles, 2 = 4 tiles, 3 = 8 tiles, etc
var tileRange = 1 << zoom;
// don't repeat across Y-axis (vertically)
if (y < 0 || y >= tileRange) {
return null;
}
// repeat across X-axis
if (x < 0 || x >= tileRange) {
x = (x % tileRange + tileRange) % tileRange;
}
return {
x: x,
y: y
};
}
/*
* Main Core
*
*/
window.onload = function() {
// Define our custom map type
var customMapType = new google.maps.ImageMapType({
getTileUrl: function(coord, zoom) {
var normalizedCoord = getNormalizedCoord(coord, zoom);
if(normalizedCoord && (normalizedCoord.x < Math.pow(2, zoom)) && (normalizedCoord.x > -1) && (normalizedCoord.y < Math.pow(2, zoom)) && (normalizedCoord.y > -1)) {
return zoom + '_' + normalizedCoord.x + '_' + normalizedCoord.y + '.jpg';
} else {
return 'empty.jpg';
}
},
tileSize: new google.maps.Size(256, 256),
maxZoom: 6,
name: 'PS_Bramus.GoogleMapsTileCutter'
});
// Basic options for our map
var myOptions = {
center: new google.maps.LatLng(0, 0),
zoom: 2,
minZoom: 0,
streetViewControl: false,
mapTypeControl: false,
mapTypeControlOptions: {
mapTypeIds: ["custom"]
}
};
// Init the map and hook our custom map type to it
var map = new google.maps.Map(document.getElementById('map'), myOptions);
map.mapTypes.set('custom', customMapType);
map.setMapTypeId('custom');
}
Last edit: 6 years 11 months ago by epol_pers.
Please Log in or Create an account to join the conversation.
- Dima
- Offline
- Platinum Member
6 years 11 months ago - 6 years 11 months ago #11365
by Dima
Don't forget support my developments: post review in JED , donate , help with translation
Replied by Dima on topic Как в функции прописать ссылку до папки?
Добрый день.
Тут, в принципе, ничего сложного.
В документации описан принцип создания сложного пользовательского типа карты (во второй части, не с самого начала)
wiki.zhuk.cc/index.php/Zh_GoogleMap_CustomMapType
В Вашем коде есть 2 вещи
- функция получения URL тайла - ее надо ввести в Get Tile URL function
- функция нормализации координат - ее надо ввести в Global scope секцию
Т.е. на закладке Global scope вносите функцию и декларацию переменной
А вот функцию для получения тайлов надо немного изменить
вместо
надо написать что-то типа
Тут, в принципе, ничего сложного.
В документации описан принцип создания сложного пользовательского типа карты (во второй части, не с самого начала)
wiki.zhuk.cc/index.php/Zh_GoogleMap_CustomMapType
В Вашем коде есть 2 вещи
- функция получения URL тайла - ее надо ввести в Get Tile URL function
- функция нормализации координат - ее надо ввести в Global scope секцию
Т.е. на закладке Global scope вносите функцию и декларацию переменной
Code:
var repeatOnXAxis = false;
function getNormalizedCoord(coord, zoom) {
if (!repeatOnXAxis) return coord;
var y = coord.y;
var x = coord.x;
// tile range in one direction range is dependent on zoom level
// 0 = 1 tile, 1 = 2 tiles, 2 = 4 tiles, 3 = 8 tiles, etc
var tileRange = 1 << zoom;
// don't repeat across Y-axis (vertically)
if (y < 0 || y >= tileRange) {
return null;
}
// repeat across X-axis
if (x < 0 || x >= tileRange) {
x = (x % tileRange + tileRange) % tileRange;
}
return {
x: x,
y: y
};
}
А вот функцию для получения тайлов надо немного изменить
вместо
Code:
function(coord, zoom) {
var normalizedCoord = getNormalizedCoord(coord, zoom);
if(normalizedCoord && (normalizedCoord.x < Math.pow(2, zoom)) && (normalizedCoord.x > -1) && (normalizedCoord.y < Math.pow(2, zoom)) && (normalizedCoord.y > -1)) {
return zoom + '_' + normalizedCoord.x + '_' + normalizedCoord.y + '.jpg';
} else {
return 'empty.jpg';
}
}
надо написать что-то типа
Code:
function(coord, zoom) {
var normalizedCoord = getNormalizedCoord(coord, zoom);
var baseURL = 'http://ваш_сайт/папка_карты/';
if(normalizedCoord && (normalizedCoord.x < Math.pow(2, zoom)) && (normalizedCoord.x > -1) && (normalizedCoord.y < Math.pow(2, zoom)) && (normalizedCoord.y > -1)) {
baseURL += zoom + '_' + normalizedCoord.x + '_' + normalizedCoord.y + '.jpg';
return baseURL;
} else {
baseURL += 'empty.jpg';
return baseURL;
}
}
Don't forget support my developments: post review in JED , donate , help with translation
Last edit: 6 years 11 months ago by Dima.
Please Log in or Create an account to join the conversation.
- epol_pers
- Topic Author
- Offline
- New Member
Less
More
- Posts: 15
- Thank you received: 0
6 years 11 months ago #11379
by epol_pers
Replied by epol_pers on topic Как в функции прописать ссылку до папки?
В итоге серый фон и ничего не отображается((
Please Log in or Create an account to join the conversation.
- epol_pers
- Topic Author
- Offline
- New Member
Less
More
- Posts: 15
- Thank you received: 0
6 years 11 months ago #11380
by epol_pers
Replied by epol_pers on topic Как в функции прописать ссылку до папки?
Использовал функцию из проекции Галла Петерса
function(coord, zoom) {
var scale = 1 << zoom;
// Wrap tiles horizontally.
var x = ((coord.x % scale) + scale) % scale;
// Don't wrap tiles vertically.
var y = coord.y;
if (y < 0 || y >= scale) return null;
return 'http://сайт/папка/' + zoom +
'_' + x + '_' + y + '.jpg';
}
function(coord, zoom) {
var scale = 1 << zoom;
// Wrap tiles horizontally.
var x = ((coord.x % scale) + scale) % scale;
// Don't wrap tiles vertically.
var y = coord.y;
if (y < 0 || y >= scale) return null;
return 'http://сайт/папка/' + zoom +
'_' + x + '_' + y + '.jpg';
}
Please Log in or Create an account to join the conversation.
- Dima
- Offline
- Platinum Member
6 years 11 months ago #11388
by Dima
Don't forget support my developments: post review in JED , donate , help with translation
Replied by Dima on topic Как в функции прописать ссылку до папки?
Дайте прямую ссылку на страницу с картой и указанным типом, посмотрю.
Don't forget support my developments: post review in JED , donate , help with translation
Please Log in or Create an account to join the conversation.
Time to create page: 0.206 seconds