Skip to content

Commit 286610d

Browse files
authored
accept spaces in mbtiles comma-separated numbers [#210] (#211)
* accept spaces in mbtiles comma-separated numbers [#210]
1 parent 085b5fc commit 286610d

File tree

2 files changed

+28
-7
lines changed

2 files changed

+28
-7
lines changed

pmtiles/convert.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -526,19 +526,19 @@ func v2ToHeaderJSON(v2JsonMetadata map[string]interface{}, first4 []byte) (Heade
526526
func parseBounds(bounds string) (int32, int32, int32, int32, error) {
527527
parts := strings.Split(bounds, ",")
528528
E7 := 10000000.0
529-
minLon, err := strconv.ParseFloat(parts[0], 64)
529+
minLon, err := strconv.ParseFloat(strings.TrimSpace(parts[0]), 64)
530530
if err != nil {
531531
return 0, 0, 0, 0, err
532532
}
533-
minLat, err := strconv.ParseFloat(parts[1], 64)
533+
minLat, err := strconv.ParseFloat(strings.TrimSpace(parts[1]), 64)
534534
if err != nil {
535535
return 0, 0, 0, 0, err
536536
}
537-
maxLon, err := strconv.ParseFloat(parts[2], 64)
537+
maxLon, err := strconv.ParseFloat(strings.TrimSpace(parts[2]), 64)
538538
if err != nil {
539539
return 0, 0, 0, 0, err
540540
}
541-
maxLat, err := strconv.ParseFloat(parts[3], 64)
541+
maxLat, err := strconv.ParseFloat(strings.TrimSpace(parts[3]), 64)
542542
if err != nil {
543543
return 0, 0, 0, 0, err
544544
}
@@ -548,15 +548,15 @@ func parseBounds(bounds string) (int32, int32, int32, int32, error) {
548548
func parseCenter(center string) (int32, int32, uint8, error) {
549549
parts := strings.Split(center, ",")
550550
E7 := 10000000.0
551-
centerLon, err := strconv.ParseFloat(parts[0], 64)
551+
centerLon, err := strconv.ParseFloat(strings.TrimSpace(parts[0]), 64)
552552
if err != nil {
553553
return 0, 0, 0, err
554554
}
555-
centerLat, err := strconv.ParseFloat(parts[1], 64)
555+
centerLat, err := strconv.ParseFloat(strings.TrimSpace(parts[1]), 64)
556556
if err != nil {
557557
return 0, 0, 0, err
558558
}
559-
centerZoom, err := strconv.ParseInt(parts[2], 10, 8)
559+
centerZoom, err := strconv.ParseInt(strings.TrimSpace(parts[2]), 10, 8)
560560
if err != nil {
561561
return 0, 0, 0, err
562562
}

pmtiles/convert_test.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,3 +215,24 @@ func TestMbtilesDegenerateBounds(t *testing.T) {
215215
})
216216
assert.NotNil(t, err)
217217
}
218+
219+
func TestMbtilesCoordinatesHasSpace(t *testing.T) {
220+
header, _, err := mbtilesToHeaderJSON([]string{
221+
"name", "test_name",
222+
"format", "pbf",
223+
"bounds", " -180.0, -85, 180, 85",
224+
"center", " -122.1906, 37.7599, 11",
225+
"attribution", "<div>abc</div>",
226+
"description", "a description",
227+
"type", "overlay",
228+
"version", "1",
229+
"compression", "gzip",
230+
})
231+
assert.Nil(t, err)
232+
assert.Equal(t, int32(-180*10000000), header.MinLonE7)
233+
assert.Equal(t, int32(-85*10000000), header.MinLatE7)
234+
assert.Equal(t, int32(180*10000000), header.MaxLonE7)
235+
assert.Equal(t, int32(85*10000000), header.MaxLatE7)
236+
assert.Equal(t, int32(-122.1906*10000000), header.CenterLonE7)
237+
assert.Equal(t, int32(37.7599*10000000), header.CenterLatE7)
238+
}

0 commit comments

Comments
 (0)