2012-05-20 4 views
1

Я новичок в jQuery и играл с плагином локатора магазина jQuery.jQuery store locator markers

Что я хочу сделать, измените маркеры с маркеров букв на обычные маркеры черной точкой. Я попытался сделать это, но все равно получаю синтаксические ошибки или вообще ничего не получается.

Еще одна вещь, которую я пытаюсь сделать, - это наличие на экране более одного локатора хранилища или отображение нескольких файлов XML. Это возможно? Я пробовал, но не получил нигде с ним.

И наконец, мне было интересно, могу ли я работать с несколькими файлами XML? Можно ли сказать 4 основных маркера, а затем, когда пользователь нажимает красную метку на аппаратные магазины, на карте будут отображаться все магазины оборудования, или он/она нажимает на синий маркер, который он получает только в продуктовых магазинах?

Надеюсь, это имеет смысл, и мне очень жаль, если этот вопрос был задан раньше. Я ничего не мог с этим поделать.

извините за задержку с ответом

jquery.storelocator.js

это немного кода у меня возникли редактирование неприятности. Каждый раз, когда я пытаюсь изменить вар pinImage строки я получаю ошибку синтаксиса

//Custom marker function - aplhabetical 
    function createMarker(point, letter, pinColor) { 
//Set up pin icon with the Google Charts API for all of our markers 

    var pinImage = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=" + letter + "|" + pinColor + "|" + settings.pinTextColor, 

    new google.maps.Size(21, 34), 
    new google.maps.Point(0, 0), 
    new google.maps.Point(10, 34)); 
    var pinShadow = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_shadow", 
    new google.maps.Size(40, 37), 
    new google.maps.Point(0, 0), 
    new google.maps.Point(12, 35)); 

//Create the markers 
    return new google.maps.Marker({ 
    position: point, 
    map: map, 
    icon: pinImage, 
    shadow: pinShadow, 
    draggable: false 

отредактированную версию кода выше

//Custom marker function - aplhabetical 
    function createMarker(point, letter, pinColor) { 
//Set up pin icon with the Google Charts API for all of our markers 

    var pinImage = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_icon&chld=" + location + "|" + pinColor + "|" + settings.pinTextColor, 

    new google.maps.Size(21, 34), 
    new google.maps.Point(0, 0), 
    new google.maps.Point(10, 34)); 
    var pinShadow = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_shadow", 
    new google.maps.Size(40, 37), 
    new google.maps.Point(0, 0), 
    new google.maps.Point(12, 35)); 

//Create the markers 
    return new google.maps.Marker({ 
    position: point, 
    map: map, 
    icon: pinImage, 
    shadow: pinShadow, 
    draggable: false 
+1

показать нам код, который вы пытались .. его проще для людей, чтобы помочь вам, что путь .... – Baz1nga

ответ

0

Вы хотите угробить пользовательские письма маркерами и использовать простые «по умолчанию» маркеры? Правильно ли я это понял? Это должно быть так же просто, как бросание всех дополнительных опций и снижения функции этого:

//Custom marker function 
    function createMarker(point) { 

//Create the markers 
    return new google.maps.Marker({ 
    position: point, 
    map: map, 
    draggable: false 
    }); 
    } 

О нескольких файлов XML, ближе всего я попытался это поместить несколько KmlLayers, и она работает. Если вы читаете данные из нескольких XML-документов, я считаю, что сбор информации должен работать нормально. Можете быть более конкретными? Является ли один XML-файл для каждого типа хранилища? Покажите нам, что вы кодировали для нескольких XML?

1

Благодарим вас за помощь в использовании маркера.

Да я использую одинарные XMLs для каждого магазина, и это код, я использую для каждого XML

trout.xml

<?xml version="1.0" encoding="UTF-8"?> 
    <kml xmlns="http://earth.google.com/kml/2.2"> 
<Document> 
    <name>trout</name> 
<description><![CDATA[Trout fishing (plain text version)]]></description> 
<Placemark> 
<name>some trout place - burnley</name> 
<Snippet>some trout place in burnley </Snippet> 
<description><![CDATA[<div dir="ltr">trout place 1 - burnley<br>some street<br>bb12 3ab<br></div>]]></description> 
<Point> 
    <coordinates>-2.104521,57.145737,0.000000</coordinates> 
</Point> 
</Placemark> 
<Placemark> 
<name>Nelson</name> 
<Snippet>Some trout place nelson</Snippet> 
<description><![CDATA[<div dir="ltr">Some trout place nelson1 <br>some street<br>Nelson<br>Bb12 3ac<br></div>]]></description> 
<Point> 
    <coordinates>-5.962432,54.570358,0.000000</coordinates> 
</Point> 

salmon.xml

<?xml version="1.0" encoding="UTF-8"?> 
<kml xmlns="http://earth.google.com/kml/2.2"> 
<Document> 
<name>Salmon</name> 
<description><![CDATA[salmon fishing in the uk (plain text version)]]></description> 
<Placemark> 
<name>Burnley</name> 
<Snippet>Salmon fishing place1 goes here</Snippet> 
<description><![CDATA[<div dir="ltr">Salmon Fishing Place - Burnley<br>Some Street<br>Burnley<br>bb12 3ab<br></div>]]></description> 
<Point> 
    <coordinates>-2.2450,53.7877,0.000000</coordinates> 
</Point> 
</Placemark> 
<Placemark> 
<name>Nelson</name> 
<Snippet>Salmon fishing place2 goes herei</Snippet> 
<description><![CDATA[<div dir="ltr">Salmon Fishing place2 - Nelson<br>Some Street<br>Nelson<br>BB12 3ac<br></div>]]></description> 
<Point> 
    <coordinates>-5.962432,54.570358,0.000000</coordinates> 
</Point> 
</Placemark> 

это место, где я размещаю файлы

Jquery.storelocator.js

(function ($) { 
$.fn.storeLocator = function (options) { 

    var settings = $.extend({ 
     'mapDiv': 'map', 
     'listDiv': 'list', 
     'formID': 'user-location', 
     'pinColor': 'fe7569', 
     'startPinColor': '66bd4a', 
     'pinTextColor': '000000', 
     'storeLimit': 10, 
     'distanceAlert': 60, 
     'xmlLocation': 'data/trout.xml', 
     'xmlLocation': 'data/salmon.xml', 
     'addressErrorMsg': 'Please enter valid UK address address or postcode', 
     'googleDistanceMatrixDestinationLimit': 25, 
     'defaultLat': 52.3038165, 
     'defaultLng': -1.081117, 
     'defaultLocationName': 'Northampton, United Kingdom' 
    }, options); 

    return this.each(function() { 
     var $this = $(this); 

     // global array of shop objects 
     var _locationset = new Array(); 
     var geocoder; 
+0

Я думаю, что это не работает, потому что xmlLocation создается затем повторно -set в том же объекте внутри $ .extend.Я действительно рекомендую помещать все в один XML и различать типы рыб в каком-то теге, как первое слово описания, а затем, когда он читается, вы извлекаете это слово. Должна облегчить вашу жизнь. постскриптум В будущем вы должны размещать в основном не связанные вопросы отдельно. –

+0

Хорошо спасибо за это, я расскажу, что я могу сделать, и спасибо за то, что другой совет никогда не использовал переполнение стека, прежде чем так привыкнуть к этому –

+0

Привет, я изо всех сил пытаюсь выяснить, как вы делаете то, что было сказано выше, пожалуйста, может кто-нибудь указать мне в правильном направлении. Мне очень жаль, что я выгляжу глупо. –

Смежные вопросы