2013-11-12 3 views
1

Привет всем, я пытаюсь сделать PictureSymbolMarker на моей карте arcgis .. Однако я столкнулся с некоторыми проблемами. я отправился на сайт esri [http://blogs.esri.com/esri/arcgis/2012/02/03/esri-picture-marker-symbol-generator-for-javascript-developers/], чтобы получить контактный url.Arcgis Map: PictureMarkerSymbol

Когда я попытался реализовать его в своих кодах, i получил ошибку.

Это, как я положил его вместе

От

`//Marker 
SimpleMarkerSymbol resultSymbol = new SimpleMarkerSymbol(Color.RED, 
       20, SimpleMarkerSymbol.STYLE.CIRCLE);` 

Для

`SimpleMarkerSymbol resultSymbol = new SimpleMarkerSymbol 
({"angle":0,"xoffset":0,"yoffset":12,"type":"esriPMS", 
"url":"http://static.arcgis.com/images/Symbols/Basic/RedStickpin.png", 
    "contentType":"image/png","width":24,"height":24});` 

Но после реализации, что коды, я получил ошибки. Кто-нибудь сталкивается с той же проблемой и может устранить ее?

Заранее спасибо

+0

Где находится ваш код, где вы фактически используете ПО LocationService? Глядя на документы API, '.start()' просто запускает службу. Вам нужно вызвать '.setSymbol()', чтобы сообщить службе, как рисовать красную точку? – Juffy

+1

Так как тип esriPMS пытается определить символ как PictureMarkerSymbol – atomaras

ответ

1

ваш вопрос в том, что вы используете JSON для PictureMarkerSymbol и инициализации SimpleMarkerSymbol, который никогда не будет работать. Попытайтесь сделать это.

var resultSymbol = new esri.symbol.PictureMarkerSymbol ({"angle":0,"xoffset":0,"yoffset":12,"type":"esriPMS", "url":"http://static.arcgis.com/images/Symbols/Basic/RedStickpin.png", "contentType":"image/png","width":24,"height":24});

0

Вы используете объект JavaScript нотации синтаксис (JSON) в коде Java для Android. Это не сработает.

@azmuhak на правильном пути. Вам необходимо создать PictureMarkerSymbol вместо SimpleMarkerSymbol. Но вам нужно сделать это способом Android, а не способом JavaScript.

Вот некоторые примеры кода для создания PictureMarkerSymbol, создавая GraphicsLayer, добавив GraphicsLayer на карту, и добавление нового графического к GraphicsLayer (запустить этот код после загрузки карты, может быть, с помощью MapView.setOnStatusChangedListener):

PictureMarkerSymbol pms = new PictureMarkerSymbol(
    "http://static.arcgis.com/images/Symbols/Basic/RedStickpin.png"); 
pms.setAngle(0f); 
pms.setOffsetX(0f); 
pms.setOffsetY(12f); 
GraphicsLayer graphicsLayer = new GraphicsLayer(); 
mMapView.addLayer(graphicsLayer); 
graphicsLayer.addGraphic(new Graphic(new Point(12, 34), pms)); 

Боковое примечание: в Android можно провести синтаксический анализ строки JSON, чтобы сделать PictureMarkerSymbol. Но в этом случае мой примерный код проще и менее подвержен ошибкам.

+0

, я действительно пробовал ваши коды, но это doenst работы. я все еще не знаю, в чем проблема. – FaridAvesko

+0

Создайте GraphicsLayer и добавьте его на карту перед вызовом addGraphic, а не после. –

+1

@GaryS. Как установить ширину и высоту для PictureMarkerSymbol? –

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