2012-06-26 4 views
0

Как создать аналогичный скрипт для пользовательского маркера с помощью Google Maps 3? Точно так же, как и с v.2:Пользовательские значки Google Maps V.3

var iconBlue = new GIcon(); 
iconBlue.image = 'images/cell1.png'; 
iconBlue.shadow = ''; 
iconBlue.iconSize = new GSize(32, 32); 
iconBlue.shadowSize = new GSize(22, 20); 
iconBlue.iconAnchor = new GPoint(3, 16); 
iconBlue.infoWindowAnchor = new GPoint(15, 15); 

var iconRed = new GIcon(); 
iconRed.image = 'images/cell3.png'; 
iconRed.shadow = ''; 
iconRed.iconSize = new GSize(32, 32); 
iconRed.shadowSize = new GSize(22, 20); 
iconRed.iconAnchor = new GPoint(15, 2); 
iconRed.infoWindowAnchor = new GPoint(15, 15); 

var iconGreen = new GIcon(); 
iconGreen.image = 'images/cell2.png'; 
iconGreen.shadow = ''; 
iconGreen.iconSize = new GSize(32, 32); 
iconGreen.shadowSize = new GSize(22, 20); 
iconGreen.iconAnchor = new GPoint(-9, 2); 
iconGreen.infoWindowAnchor = new GPoint(20, 15); 

var customIcons = []; 
customIcons["60"] = iconBlue; 
customIcons["240"] = iconRed; 
customIcons["350"] = iconGreen; 

Я написал следующее в версии 3, и маркер не показан.

var cellone = new google.maps.MarkerImage("images/cell1.png", 
    new google.maps.Size(20, 34), new google.maps.Point(0,0), 
    new google.maps.Point(3, 16)); 
var celltwo = new google.maps.MarkerImage("images/cell2.png", 
    new google.maps.Size(20, 34), new google.maps.Point(0,0), 
    new google.maps.Point(-9, 2)); 
var cellthree = new google.maps.MarkerImage("images/cell3.png", 
    new google.maps.Size(20, 34), new google.maps.Point(0,0), 
    new google.maps.Point(15, 2)); 

var customIcons = []; 
customIcons["60"] = cellone; 
customIcons["240"] = celltwo; 
customIcons["350"] = cellthree; 
+1

Ваше 'определение MarkerImage' выглядит хорошо, хотя не понятно, почему вы поместите их в массив, как это. Поэтому причина ошибки должна быть где-то в другом месте. Есть ли какие-либо ошибки в консоли? –

ответ

0

Я недавно только что сделал этот значок. И я изначально использовал тот же тип кода, который вы использовали, но это не сработало. Очевидно, что новый GIcon() не функционировал должным образом.

Существует очень простой способ изменить значок, хотя он не использует переменные. Это то, что я сделал.

Объявлять маркер Variable как глобальную переменную. Когда вы создаете новые маркеры, одна из строк должна указывать значок: ...

Вот пример моего кода. Конечно, вам придется изменить определенные строки, чтобы они работали для вашей программы (и вы не можете использовать маркер с ярлыками, если вы не смените некоторые функции).

И, наконец, значок: ... может быть ссылкой или местоположением на вашем компьютере.

var iconArray = [ 
       ["http://www.google.com/intl/en_us/mapfiles/ms/micons/red-dot.png"], 
       ["http://www.google.com/intl/en_us/mapfiles/ms/micons/yellow-dot.png"], 
       ["http://www.google.com/intl/en_us/mapfiles/ms/micons/green-dot.png"], 
       ["http://www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png"], 
       ["http://www.google.com/intl/en_us/mapfiles/ms/micons/purple-dot.png"], 
       ["http://www.google.com/intl/en_us/mapfiles/ms/micons/pink-dot.png"], 
       ["http://www.google.com/intl/en_us/mapfiles/ms/micons/ltblue-dot.png"] 

       ]; 


function getMarkers() { 
    for (i = 0; i < locations.length; i++) { 
      marker[i] = new MarkerWithLabel({ 
       position: new google.maps.LatLng(locations[i][1], locations[i][2]), 
       draggable: false, 
       map: map, 
       icon: new google.maps.MarkerImage(iconArray[i]), 
       //icon: new google.maps.MarkerImage("http://www.google.com/intl/en_us/mapfiles/ms/micons/pink-dot.png"), 
       //labelContent: locations[i][3], 
       labelAnchor: new google.maps.Point(30, 0), 
       labelClass: "labels", // the CSS class for the label 
       labelStyle: {opacity: 0.75} 
      }); 



     } 
} 

function initialize() { 
    getMarkers(); 
} 
+0

Извините, способ, которым я хочу todo, - это сделать категории значков, а затем они будут отображаться в значении. Ты понял? И я могу отредактировать привязку, размер и т. Д. Из каждой категории изображений (если массив) Спасибо, в любом случае, я узнаю ваш скрипт;) –

+0

Хм, да, я не мог самостоятельно манипулировать значком с помощью GIcon(). Конечно, я использовал маркеры с метками в шахте, так что это, скорее всего, вызвало проблему. Если вы решите изменить некоторые из ваших основных функций/объектов, вам также придется отредактировать код значка маркера. Я знаю, что все, что вы хотели реализовать в своем коде, может быть выполнено без использования GIcon, поскольку все, что вы настраиваете в значке, можно сделать в маркере, и вместо того, чтобы редактировать изображение, вы редактируете его с помощью маркера. – krikara

+0

ОК, тогда я попытаюсь «использовать» ваш скрипт, но если у меня возникнут проблемы и не могу его решить, пожалуйста, помогите мне нормально? Большое вам спасибо, поймать вас позже на этой странице krikara;) –