2

私はjQueryが初めてで、jQueryストアロケータープラグインで遊んでいます。

私がやりたいのは、マーカーを文字マーカーから黒い点のある通常のマーカーに変更することです。これを試してみましたが、構文エラーが発生し続けるか、何も表示されません。

私がやろうとしているもう 1 つのことは、画面に複数のストア ロケータを表示するか、複数の XML ファイルを表示することです。これは可能ですか?私は試しましたが、どこにも行きませんでした。

最後に、複数の XML ファイルを機能させることができるかどうか疑問に思っていました。4 つのメイン マーカーを使用することは可能ですか。ユーザーが金物店の赤いマークを押すと、地図にはすべての金物店が表示されます。または、青いマーカーを押すと、食料品店だけが表示されますか?

これが理にかなっていることを願っています。この質問が以前に尋ねられた場合は、申し訳ありません。私はそれについて何も見つけることができませんでした。

返信が遅れて申し訳ありません

jquery.storelocator.js

これは、編集に問題があるコードです。var 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
4

2 に答える 2

1

マーカービットのご協力ありがとうございます。

はい、ストアごとに1つのxmlを使用しています。これは、各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>01234 567890</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>01234 567890</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>01234 567890</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>01234 567890</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;
于 2012-05-20T15:25:33.350 に答える
0

カスタム文字マーカーを捨てて、単純な「デフォルト」マーカーを使用したいですか? 私はそれを正しく理解しましたか?すべての余分なオプションを投げて、関数をこれに減らすのと同じくらい簡単なはずです:

//Custom marker function
  function createMarker(point) {

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

複数の XML ファイルについて、私が試した中で最も近いのは、複数の KmlLayers を配置することで、動作します。複数の XML からデータを読み取る場合、情報の構築はうまくいくはずです。もっと具体的に言えますか?店舗の種類ごとに 1 つの XML ファイルを使用していますか? 複数の XML に対して何をコーディングしたか教えてください。

于 2012-05-20T14:59:29.057 に答える