0
$\begingroup$

With reference to this related topic, I have a map (called EKB):

EKB=EKB

The coordinates of the map corners:

LowerLeftCorner = {FromDMS["55°44'59.75''N"], FromDMS["55°46'24.20''E"]};
UpperRightCorner = {FromDMS["58°36'01.89''N"], FromDMS["66°08'20.36''E"]};

The legends for objects:

a1=

aes

a2=

tec

a3=

gres

I decided to create a dataset at first in order to store the names of the objects and their coordinates.

The dataset:

DataSetEkb = Dataset[{
   <|"Names of Objects" -> "Белоярская АЭС", 
    "Coordinates" -> {56.842034, 61.319775}, "Legend" -> a1 |>,
   <|"Names of Objects" -> "Ново-Свердловская ТЭЦ", 
    "Coordinates" -> {56.839909, 60.841127}, "Legend" -> a2 |>,
   <|"Names of Objects" -> "Среднеуральская ГРЭС", 
    "Coordinates" -> {57.000236, 60.463666}, "Legend" -> a3|>}];

And finally I got this:

GeoGraphics[{GeoMarker[GeoPosition[Normal[DataSetEkb[All, 2]]], 
   Normal[DataSetEkb[All, 3]], "Scale" -> Scaled[0.5]]},
 GeoBackground -> GeoStyling[{"Image", EKB}],
 GeoRange -> Transpose@{LowerLeftCorner, UpperRightCorner}]

final

Questions:

  1. Why did I get this result and how can it be fixed (what's wrong with my parameters of GeoMarker)?

  2. Is it okay to use the DataSet in such type of the "task" (in order to store the objects and their parameters)? What if the number of the objects is more than 2000? Perhaps, there is a better way to store the objects?

(I hope I was sufficiently specific)

$\endgroup$
7
$\begingroup$

I'd suggest that you first carefully read the document page of GeoMarker as it clearly does not specify a syntax where you can use multiple markers for multiple coordinates. So, you have to resort to using multiple GeoMarkers instead.

Something like:

GeoGraphics[
  {
    GeoMarker[##, "Scale" -> Scaled[0.05]] & @@@ 
      Values@Normal@DataSetEkb[All, {"Coordinates", "Legend"}
  }, 
  GeoBackground -> GeoStyling[{"Image", EKB}], 
  GeoRange -> Transpose@{LowerLeftCorner, UpperRightCorner}
]

Mathematica graphics

$\endgroup$

Not the answer you're looking for? Browse other questions tagged or ask your own question.